http://msdn.microsoft.com/en-us/library/gg197525%28v=vs.103%29.aspx
Я не говорю, что это невозможно сделать, но эти примеры не показывают, как это делается.
Однако, если вы используете соглашения Fluent-API, это довольно просто.
Ваши определения POCO:
public class BaseClass
{
public int Id {get; set;}
}
public class DerivedClass : BaseClass
{
public string Data {get; set;}
}
Конфигурирование сопоставлений с БД:
public class BaseConfiguration : EntityTypeConfiguration<BaseClass>
{
public BaseConfiguration()
{
HasKey(k => k.Id);
Property(p => p.Id).HasColumnName("Id").HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).IsRequired();
}
}
public class DerivedConfiguration : BaseConfiguration
{
public DerivedConfiguration()
{
Property(p => p.Id).HasColumnName("BaseClassId");
}
}
, складывающих все вместе
public class MyContext : DbContext
{
public MyContext(string connectionString) : base(connectionString)
{
Database.SetInitializer<MyContext>(null);
}
public DbSet<BaseClass> Bases { get; set; }
public DbSet<DerivedClass> Deriveds { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new BaseConfiguration());
modelBuilder.Configurations.Add(new DerivedConfiguration());
}
}
Таким образом, вы создаете экземпляр MyContext, передающий строку подключения, и конфигурации сообщают EF, как обращаться с таблицами.