Обновление : Оказывается, у меня было (скрыто в моих объектах POCO) свойство с абстрактным типом.Удаление этого свойства решает проблему.
Я пытаюсь создать сценарий, основанный на модели с сущностью 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: значение не может быть нулевым.Имя параметра: entitySet]
System.Lazy 1.get_Value() +9591079<br>
System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
+371 System.Data.Entity.Internal.InternalContext.Initialize()
+16 System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type
entityType) +15<br>
System.Data.Entity.Internal.Linq.InternalSet
1.Initialize () +62 System.Data.Entity.Internal.Linq.InternalSet 1.get_Provider()
+15 System.Data.Entity.Infrastructure.DbQuery
1.System.Linq.IQueryable.get_Provider () +13 System.Linq.Queryable.Where (предикат IQueryable 1
source, Expression
1) + 63
Однако при первом построении возникает конкретная ошибка:
[ArgumentNullException:Значение не может быть нулевым.Имя параметра: entitySet]
System.Data.Entity..Mapping.DbDatabaseMappingExtensions.GetEntitySetMapping (DbDatabaseMapping databaseMapping, EdmEntitySet entitySet) + 147
System.Data.Entity.ModelConfiguration.Edm.Services.EntityTypeMappingGenerator.ModelConfiguration.Edm.Entity.ModelConfiguration.Edm.EdmModelExtensions.GenerateDatabaseMapping (модель EdmModel, поставщик DbProviderManifestManifest) + 233
System.Data.Entity.ModelConfiguration.CreateModel () + 61