哈哈。这可能是 EF 进行建模最复杂的情况?我什至怀疑是否支持这种情况。我的业务就像我需要知道哪个应用程序与另一个应用程序匹配的原因是什么。所以表示关系的表如下所示:
PrimaryApplicationID、SecondaryApplicationID、MatchedRuleID
好的。现在我甚至可以使用 EF 来表示这种关系吗?如果是,我需要在数据库方面做些什么特别的事情?我正在使用数据库优先的方法,但这并不重要,不是吗?
感谢您提供任何线索。
哈哈。这可能是 EF 进行建模最复杂的情况?我什至怀疑是否支持这种情况。我的业务就像我需要知道哪个应用程序与另一个应用程序匹配的原因是什么。所以表示关系的表如下所示:
PrimaryApplicationID、SecondaryApplicationID、MatchedRuleID
好的。现在我甚至可以使用 EF 来表示这种关系吗?如果是,我需要在数据库方面做些什么特别的事情?我正在使用数据库优先的方法,但这并不重要,不是吗?
感谢您提供任何线索。
使用 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
double-PK inMatchingApplications
是一个复合键。双 FK 表示同一个表的两个单独的外键关系Applications.
您不能为这两个关系启用级联删除,因为 SQL Server 不允许在同一个表之间存在多个级联删除路径。
EF 应该从此数据库模式创建三个实体:
Application
具有两个元素类型集合的实体MatchingApplication
Rule
具有一个元素类型的集合的实体MatchingApplication
MatchingApplication
Application
具有两个导航引用类型和一个导航引用类型的实体Rule
。