LOL。对于EF进行建模,这可能是最复杂的情况?我甚至怀疑这种情况是否得到支持。 我的业务就像我需要知道哪个应用程序与另一个应用程序匹配的原因。因此,表示关系的表格如下所示:
PrimaryApplicationID,SecondaryApplicationID,MatchedRuleID
行。现在我甚至可以使用EF代表这种关系吗?如果是的话,我需要在数据库方面做些什么特别的事情?我正在使用数据库优先方法,但这不重要,是吗?
感谢任何线索。
答案 0 :(得分:1)
使用Database-First,您将创建三个表,例如:
表Applications
ApplicationId int NOT NULL PK
...Other columns...
表Rules
RuleId int NOT NULL PK
...Other columns...
表MatchingApplications
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意味着两个单独的外键关系到同一个表Applications.
您不能为两个关系启用级联删除,因为SQL Server不允许多个级联删除路径同桌。
EF应该从这个数据库模式中创建三个实体:
Application
具有两个元素类型为MatchingApplication
Rule
实体,其中包含一个元素类型为MatchingApplication
MatchingApplication
实体,其中包含两个类型为Application
的导航参考和一个类型为Rule
的导航参考。