如何为EF构建这些表?
第一张表:
public class model1
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
第二张表:
public class model2
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
具有第一个和第二个连接的表 以及几个领域:
public class model3
{
public int (id from model1){ get; set; }
public int (id from model2) { get; set; }
public int (id from model2){ get; set; }
public decimal Name{ get; set; }
public decimal Description{ get; set; }
}
答案 0 :(得分:0)
我认为这可以解决问题(提供你描述的表结构)
public class model3
{
public virtual model1 Model1 { get; set; }
public virtual model2 Model2 { get; set; }
public virtual model2 SecondModel2 { get; set; }
// if you want the ID fields explicitly,
// EF will map the keys by property name,
// optionaly you can use the ForeignKeyAttribute
public int Model1Id { get; set; }
public int Model2Id { get; set; }
public int SecondModel2Id { get; set; }
public decimal Name{ get; set; }
public decimal Description{ get; set; }
}
但您可能想重新考虑结构 - 您提出的结构看起来有点可疑 - model1和model2具有相同的字段,因此可能不应将它们定义为单独的类。 model3类也有一些共同的字段,所以也许值得将它们提取到一个公共类中--EF处理继承。
要获得多对多的关系,你需要这样的东西:
public class Foo
{
public int Id {get;set;}
public virtual ICollection<Bar> Bars {get;set;}
}
public class Bar
{
public int Id {get;set;}
public virtual ICollection<Foo> Foos {get;set;}
}
这将创建一个Foo表,一个条形表和一个FooBars(或BarFoos)关联表。