Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EF中具有额外列的同一表之间的多对多关系_Entity Framework_Many To Many - Fatal编程技术网

Entity framework EF中具有额外列的同一表之间的多对多关系

Entity framework EF中具有额外列的同一表之间的多对多关系,entity-framework,many-to-many,Entity Framework,Many To Many,哈哈。这可能是EF做建模最复杂的情况了吧?我甚至怀疑这种情况是否得到支持。 我的业务就像我需要知道哪个应用程序与另一个应用程序匹配是出于什么原因。因此,表示关系的表如下所示: PrimaryApplicationID、SecondaryApplicationID、MatchedRuleID 嗯。现在我是否可以用EF来表示这种关系?如果是,在数据库方面我需要做什么特殊的事情?我使用数据库优先的方法,但这并不重要,不是吗 感谢您提供任何线索。首先使用数据库,您将创建三个表,例如: 表应用程序 Ap

哈哈。这可能是EF做建模最复杂的情况了吧?我甚至怀疑这种情况是否得到支持。 我的业务就像我需要知道哪个应用程序与另一个应用程序匹配是出于什么原因。因此,表示关系的表如下所示:

PrimaryApplicationID、SecondaryApplicationID、MatchedRuleID

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


感谢您提供任何线索。

首先使用数据库,您将创建三个表,例如:

  • 应用程序

    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应从此数据库架构创建三个实体:

  • 应用程序
    具有两个集合的实体,元素类型为
    匹配应用程序
  • 规则
    具有一个集合且元素类型为
    匹配应用程序的实体
  • 匹配应用程序
    实体,具有两个
    应用程序
    类型的导航引用和一个
    规则
    类型的导航引用