Я пытаюсь реализовать шаблон состояния с Entity Framework 5 Code First.Entity Framework - Наследование - шаблон состояния - ошибка: «Тип не был отображен»
Мой сценарий есть абстрактный частичный базовый класс с именем LotStatus и 5 класс, который наследует от этого один: OpenStatus, AwardedStatus, CancelledStatus, ContractSignedStatus и EvaluationStatus:
public abstract partial class LotStatus { ... }
public class OpenStatus : LotStatus { ... }
public class AwardedStatus : LotStatus { ... }
В OnModelCreating из DbContext я добавляю конфигурация для модели строителя Карта эти объекты:
modelBuilder.Configurations.Add(new LotStatusConfiguration());
код LotStatusConfiguration выглядит следующим образом:
public class LotStatusConfiguration : EntityTypeConfiguration<LotStatus>
{
public LotStatusConfiguration()
{
ToTable("LotStatus");
HasKey(ls => ls.LotStatusID);
this.Map<OpenStatus>(pk => pk.Requires("Discriminator").HasValue(typeof(OpenStatus).AssemblyQualifiedName).HasColumnType("nvarchar(max)"));
this.Map<EvaluationStatus>(pk => pk.Requires("Discriminator").HasValue(typeof(EvaluationStatus).AssemblyQualifiedName).HasColumnType("nvarchar(max)"));
this.Map<AwardedStatus>(pk => pk.Requires("Discriminator").HasValue(typeof(AwardedStatus).AssemblyQualifiedName).HasColumnType("nvarchar(max)"));
this.Map<ContractSignedStatus>(pk => pk.Requires("Discriminator").HasValue(typeof(ContractSignedStatus).AssemblyQualifiedName).HasColumnType("nvarchar(max)"));
this.Map<CancelledStatus>(pk => pk.Requires("Discriminator").HasValue(typeof(CancelledStatus).AssemblyQualifiedName).HasColumnType("nvarchar(max)"));
}
}
Когда EF пытается создать базу данных, что вызывает ошибку:
The type 'OpenStatus' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject.
у меня нет никакого [NotMapped] тег так, что я worng делать? Некоторая идея?
Спасибо!
Он был включен: общественный DbSet LotStatus {получить; задавать; } –
затем поместите полный воспроизводимый код для сущностей и вашего контекста, и я попробую взглянуть позже – NSGaga