C# 通过TPC策略通过EntityFramework从DB获取数据
我在我的项目中使用EF6。我有抽象类“Animal”和两个类,它们由它继承:Cat和Dog 作为继承策略,我希望使用TPC(每个具体表),我的DbContext如下所示C# 通过TPC策略通过EntityFramework从DB获取数据,c#,.net,entity-framework,orm,entity-framework-6,C#,.net,Entity Framework,Orm,Entity Framework 6,我在我的项目中使用EF6。我有抽象类“Animal”和两个类,它们由它继承:Cat和Dog 作为继承策略,我希望使用TPC(每个具体表),我的DbContext如下所示 public class AnimalDbContext: DbContext { public DbSet<Animal> Animals { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuild
public class AnimalDbContext: DbContext
{
public DbSet<Animal> Animals { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Cat>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("Cats");
});
modelBuilder.Entity<Dog>().Map(m =>
{
m.MapInheritedProperties();
m.ToTable("Dogs");
});
}
}
你试过以下方法吗
using (var db = new AnimalDbContext)
{
var cats = db.Animals.OfType<Cat>().ToArray();
// Or when you want to get animals of multiple types
var catsAndDogs = db.Animals.Where(a => a is Cat|| a is Dog).ToArray();
}
使用(var db=newanimaldbcontext)
{
var cats=db.anists.OfType().ToArray();
//或者当你想得到多种动物的时候
var catsAndDogs=db.anists.Where(a=>a是猫| | a是狗)。ToArray();
}
using (var db = new AnimalDbContext)
{
var cats = db.Animals.OfType<Cat>().ToArray();
// Or when you want to get animals of multiple types
var catsAndDogs = db.Animals.Where(a => a is Cat|| a is Dog).ToArray();
}