在Entity framework DB第一种方法中,我在Db表中有两列是复合主键。当我为该数据库创建实体框架时,该表不会在那里显示为实体。
答案 0 :(得分:0)
要创建复合主键,您可以添加数据注释[Key, Column(Order = 0)]
public class Person
{
[Key, Column(Order = 0)]
public string ID{ get; set; }
[Key, Column(Order = 1)]
public int IDTwo { get; set; }
}
您也可以使用Fluent Api。
答案 1 :(得分:0)
如果它是数据库中的一个连接表(用于实现多对多关系),则在“数据库优先”方法中,它在edmx Dig中将不可见。
多对多关系(Reference)
学生和课程具有*多重性标记的多对多关系。这意味着一名学生可以报名参加许多课程,而且一门课程可以教给许多学生。
数据库包含 StudentCourse 联接表,该表包括两个表(“ Student和Course”表)的主键。实体框架通过不为CSDL和可视设计器中的联接表设置实体集(DbSet属性)来表示多对多关系。相反,它通过映射来管理。
注意:仅当联接表(在这种情况下为StudentCourse)不包括两个表的PK以外的任何列时,实体框架才支持多对多关系。如果联接表包含其他列,例如DateCreated,则EDM也会为中间表创建一个实体,并且您将必须手动管理多对多实体的CRUD操作。
还请注意,在我们的模式下,link(aka交界处)表未表示为实体。没有有效负载时(即没有标量属性)。如果我们有一个有效载荷,那么我们就不应该具有多对多关系,而应该拥有一个具有一对多关系的第四实体。有关更多信息,请参见this