我剛接觸代碼第一範式,請耐心等待。我無法從我的實體類中獲取在我的數據庫上創建的基元或自定義類的集合/列表/數組。所以,結果,我無法正確種子。沒有錯誤,只需獲取除我的集合以外的每個屬性的實體表。我使用EF5,VS2010,MVC4和SqlExpress。我究竟做錯了什麼?實體框架5:使用代碼優先創建集合
我的實體類:
public class MyEntity
{
public int MyEntityID { get; set; } // GOOD
public string Property1 { get; set; } // GOOD
public bool Property2 { get; set; } // GOOD
public IList<CustomClass> CustomClassList { get; set; } //BAD, NOT CREATED ON DB
public CustomClass[] CustomClassArray { get; set; } //BAD, NOT CREATED ON DB
}
我的自定義類:
[ComplexType]
public class CustomClass
{
public string Title { get; set; }
}
我的配置/遷移類
public class Configuration : DbMigrationsConfiguration<MyContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
protected override void Seed(MyContext context)
{
context.MyEntity.AddOrUpdate(x => x.MyEntityID,
new MyEntity()
{
Property1 = "abc",
Property2 = "xyz",
CustomClassList = new List<CustomClass> {new CustomClass{Title="Help"}}
}
context.SaveChanges();
}
}
我的Global.asax.cs的Application_Start()方法
protected void Application_Start()
{
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
}
當我嘗試創建一個新的數據庫,我得到了相同的結果:
<!--NO LUCK-->
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS2;Initial Catalog=TESTDB_2;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
<!--NO LUCK-->
<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS2;Initial Catalog=TESTDB_3;Integrated Security=SSPI" providerName="System.Data.SqlClient" />
我不能幫助遷移,但集合應聲明爲ICollection <>例如'公衆ICollection CustomClassList {get;組; }' –
qujck
2013-03-08 16:27:32