0

哈哈。这可能是 EF 进行建模最复杂的情​​况?我什至怀疑是否支持这种情况。我的业务就像我需要知道哪个应用程序与另一个应用程序匹配的原因是什么。所以表示关系的表如下所示:

PrimaryApplicationID、SecondaryApplicationID、MatchedRuleID

好的。现在我甚至可以使用 EF 来表示这种关系吗?如果是,我需要在数据库方面做些什么特别的事情?我正在使用数据库优先的方法,但这并不重要,不是吗?

感谢您提供任何线索。

4

1 回答 1

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
    

double-PK inMatchingApplications是一个复合键。双 FK 表示同一个表的两个单独的外键关系Applications.您不能为这两个关系启用级联删除,因为 SQL Server 不允许在同一个表之间存在多个级联删除路径。

EF 应该从此数据库模式创建三个实体:

  • Application具有两个元素类型集合的实体MatchingApplication
  • Rule具有一个元素类型的集合的实体MatchingApplication
  • MatchingApplicationApplication具有两个导航引用类型和一个导航引用类型的实体Rule
于 2013-10-13T00:03:58.113 回答