Cześć,

mam takie pytanie odnośnie tworzenia klasy dla Entity Framework przy użyciu "code first".

Chciałbym tak utworzyć klasę, żeby zawierała tylko dwie listy. Jedna miałaby wartości string jako nazwy parametrów i wartości string jako wartości parametrów. Druga miałaby wartości string jako nazwy parametrów i wartości double jako wartości parametrów. (Część parametrów przyjmuje wartości string, a część double). Czy coś takiego można obsłużyć w Entity Framework przy użyciu "code first"?

Nie byłoby to problemem, gdybym miał z góry określone wartości string i double w klasie. Tutaj jednak nie znam liczby tych zmiennych (są one dodawane dynamicznie w trakcie wykonania aplikacji), stąd też są one w listach z nazwami i wartościami.

Docelowo każda wartość string z nazwą parametru (z obu list) byłaby nazwą kolumny, a każda zmienna z wartością parametru (zmienna string z pierwszej listy lub zmienna double z drugiej listy) byłaby wartością dla kolejnego wiersza danych, dodawanych do tabeli.

Na przykład coś takiego:

		public class EntityStringColumn
		{
			string ParameterName { get; set; }
			string ParameterValue { get; set; }
		}

		public class EntityDoubleColumn
		{
			string ParameterName { get; set; }
			double ParameterValue { get; set; }
		}

		public class EntityData
		{
			List<EntityStringColumn> EntityStringColumns { get; set; }
			List<EntityDoubleColumn> EntityDoubleColumns { get; set; }
			public EntityData()
			{
				EntityStringColumns = new List<EntityStringColumn>();
				EntityDoubleColumns = new List<EntityDoubleColumn>();
			}
		}

W jaki sposób można coś takiego obsłużyć w Entity Framework przy użyciu "code first"?

Pozdrawiam!


PS Rozszerzyłem trochę swój kod, jednak nie tworzy on w prawidłowy sposób bazy danych. Co może być przyczyną?

app.config

<connectionStrings>
	<add
	name="CodeFirstDatabase"
	providerName="System.Data.SqlClient"
	connectionString="Server=.\SQLEXPRESS;Database=MT4Analyzer;Trusted_Connection=true;"/>
</connectionStrings>

Database.cs

public class EntityData : DbContext
{
	// DbContext required: C:\Program Files (x86)\Microsoft Web Tools\Packages\EntityFramework.5.0.0\lib\net40\EntityFramework.dll
	public List<EntityStringColumn> EntityStringColumns { get; set; }
	public List<EntityDoubleColumn> EntityDoubleColumns { get; set; }
	public EntityData()
	{
		EntityStringColumns = new List<EntityStringColumn>();
		EntityDoubleColumns = new List<EntityDoubleColumn>();
	}
}

TheOtherFile.cs

// W tym miejscu currentDBRow ma wszystkie wartości, które chcę dodać do DB.

using (var db = currentDBRow)
{
	var result = db.SaveChanges();
}

Zmienna 'result' ma wartość zero, a baza danych nie zostaje utworzona. Do serwera mogę się dostać w Management Studio z uprawnieniami konta, z którego uruchamiam aplikację. Jeśli bym jednak chciał się dostać przez "sa" to muszę podać hasło. Serwer umożliwia logowanie w "mixed mode".