Entity framework EF支持按条件联接表?
我有以下3个表格:Entity framework EF支持按条件联接表?,entity-framework,Entity Framework,我有以下3个表格: class Product int Id {get;set;} string Name {get;set;} List<Picture> Picture {get;set;} class Picture ... [ForeignKey("Product.ProductId".....when type=1)] int ModelId {get;set;} ef可以提供以下支持: class Product int Id {get;set;} string
class Product
int Id {get;set;}
string Name {get;set;}
List<Picture> Picture {get;set;}
class Picture
...
[ForeignKey("Product.ProductId".....when type=1)]
int ModelId {get;set;}
ef可以提供以下支持:
class Product
int Id {get;set;}
string Name {get;set;}
List<Picture> Picture {get;set;}
class Picture
...
[ForeignKey("Product.ProductId".....when type=1)]
int ModelId {get;set;}
类产品
int Id{get;set;}
字符串名称{get;set;}
列表图片{get;set;}
班级照片
...
[ForeignKey(“Product.ProductId”……类型=1时)]
int ModelId{get;set;}
我希望它可以通过映射属性或“.ToTable()…with many(c=>…).Map(…”来工作
ef能做到这一点吗?这可以通过TPH战略实现(但不完全如此),比如
public class Picture {
public Int32 Id {get; set;}
public String URL {get; set;}
}
public class ProductPicture : Picture {
public virtual Product {get; set;}
}
public class CompanyPicture : Picture {
public virtual Company {get; set;}
}
在构建模型时
protected override OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<Picture>()
.Map<ProductPicture>(e => e.Requires("Type").HasValue(1))
.Map<CompanyPicture>(e => e.Requires("Type").HasValue(2))
}
模型创建时受保护的覆盖(DbModelBuilder modelBuilder){
modelBuilder.Entity()
.Map(e=>e.Requires(“Type”).HasValue(1))
.Map(e=>e.Requires(“Type”).HasValue(2))
}
在这种情况下,您将有一个表,其中包含:
- 鉴别器列
- 一个FK到产品
- 一个FK到公司