Entity framework EF中具有额外列的同一表之间的多对多关系
哈哈。这可能是EF做建模最复杂的情况了吧?我甚至怀疑这种情况是否得到支持。 我的业务就像我需要知道哪个应用程序与另一个应用程序匹配是出于什么原因。因此,表示关系的表如下所示: PrimaryApplicationID、SecondaryApplicationID、MatchedRuleID 嗯。现在我是否可以用EF来表示这种关系?如果是,在数据库方面我需要做什么特殊的事情?我使用数据库优先的方法,但这并不重要,不是吗Entity framework EF中具有额外列的同一表之间的多对多关系,entity-framework,many-to-many,Entity Framework,Many To Many,哈哈。这可能是EF做建模最复杂的情况了吧?我甚至怀疑这种情况是否得到支持。 我的业务就像我需要知道哪个应用程序与另一个应用程序匹配是出于什么原因。因此,表示关系的表如下所示: PrimaryApplicationID、SecondaryApplicationID、MatchedRuleID 嗯。现在我是否可以用EF来表示这种关系?如果是,在数据库方面我需要做什么特殊的事情?我使用数据库优先的方法,但这并不重要,不是吗 感谢您提供任何线索。首先使用数据库,您将创建三个表,例如: 表应用程序 Ap
感谢您提供任何线索。首先使用数据库,您将创建三个表,例如:
- 表
应用程序
ApplicationId int NOT NULL PK ...Other columns...
PrimaryApplicationId int NOT NULL PK, FK to Applications table SecondaryApplicationId int NOT NULL PK, FK to Applications table MatchedRuleId int NOT NULL FK to Rules table
- 表
规则
RuleId int NOT NULL PK ...Other columns...
- 表
匹配应用程序
ApplicationId int NOT NULL PK ...Other columns...
PrimaryApplicationId int NOT NULL PK, FK to Applications table SecondaryApplicationId int NOT NULL PK, FK to Applications table MatchedRuleId int NOT NULL FK to Rules table
MatchingApplications
中的双PK意味着一个复合键。双FK是指同一个表的两个独立外键关系应用程序。
您不能为这两个关系启用级联删除,因为SQL Server不允许在同一个表之间有多个级联删除路径
EF应从此数据库架构创建三个实体:
具有两个集合的实体,元素类型为应用程序
匹配应用程序
具有一个集合且元素类型为规则
匹配应用程序的实体
实体,具有两个匹配应用程序
类型的导航引用和一个应用程序
类型的导航引用规则