更新:原來我已經(藏在我的POCO對象)有一個抽象類型的屬性。刪除此屬性解決了這個問題。的DbContext初始化失敗模型的第一個數據庫
我試圖與實體框架模型的第一個場景4 CTP 5生成我的數據庫(目前使用SQL Server CE4後端,但我可以重現上一個SQL Server 2008後端)從我的模型。
我想我可能會莫名其妙地搞砸了我的模型定義,但我似乎無法找出錯誤信息和如何讓我毫無收穫。
我的DbContext對象被設置爲這樣:
public class MyDb : DbContext
{
public MyDb()
{
// Apply forced recreation tactics for now
DbDatabase.SetInitializer<MyDb>(new CreateDatabaseIfNotExists<MyDb>());
}
public DbSet<UserAccount> UserAccounts { get; set; }
public DbSet<OtherData> OtherDatas { get; set; }
// etc
}
當我查詢它(如下):
MyDb db = new MyDb();
var matchingAccount = from user in db.UserAccounts where user.Email == email select user;
return matchingAccount.SingleOrDefault();
我收到以下錯誤:
[ArgumentNullException: Value cannot be null. Parameter name: entitySet]
System.Lazy1.get_Value() +9591079
1.Initialize() +62 System.Data.Entity.Internal.Linq.InternalSet
System.Data.Entity.Internal.LazyInternalContext.InitializeContext() +371 System.Data.Entity.Internal.InternalContext.Initialize() +16 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +15
System.Data.Entity.Internal.Linq.InternalSet1.get_Provider() +15 System.Data.Entity.Infrastructure.DbQuery
1.System.Linq.IQueryable.get_Provider() +13 System.Linq.Queryable.Where(IQueryable1 source, Expression
1 predicate) +63
然而,我第一次構建,這是具體的錯誤:
[ArgumentNullException: Value cannot be null. Parameter name: entitySet]
System.Data.Entity.ModelConfiguration.Utilities.RuntimeFailureMethods.ReportFailure(ContractFailureKind contractFailureKind, String userMessage, String conditionText, Exception innerException) +970860
System.Data.Entity.ModelConfiguration.Edm.Db.Mapping.DbDatabaseMappingExtensions.GetEntitySetMapping(DbDatabaseMapping databaseMapping, EdmEntitySet entitySet) +147
System.Data.Entity.ModelConfiguration.Edm.Services.EntityTypeMappingGenerator.Generate(EdmEntityType entityType, DbDatabaseMapping databaseMapping) +206
System.Data.Entity.ModelConfiguration.Edm.Services.DatabaseMappingGenerator.GenerateEntityTypes(EdmModel model, DbDatabaseMapping databaseMapping) +253
System.Data.Entity.ModelConfiguration.Edm.Services.DatabaseMappingGenerator.Generate(EdmModel model) +168
System.Data.Entity.ModelConfiguration.Edm.EdmModelExtensions.GenerateDatabaseMapping(EdmModel model, DbProviderManifest providerManifest) +233
System.Data.Entity.ModelConfiguration.ModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo, Boolean validateModel) +280 System.Data.Entity.ModelConfiguration.ModelBuilder.Build(DbConnection providerConnection) +173
System.Data.Entity.Internal.LazyInternalContext.CreateModel() +61
非常感謝!我瘋狂地想知道爲什麼我的分貝已經停止工作。就在昨天,我添加了一個抽象類作爲屬性給我的一個域對象。回到我認爲的界面! – nialljsmith 2011-06-21 11:39:40