Sql mvc代码优先方法中的循环依赖

Sql mvc代码优先方法中的循环依赖,sql,entity-framework,entity-framework-migrations,Sql,Entity Framework,Entity Framework Migrations,我有三张桌子: Group, Contact and Address ContactID (pk) GroupID (fk) Name 集团 GroupID (pk) GName ContactID (pk)

我有三张桌子:

Group, Contact and Address
 ContactID (pk)                                                                   
 GroupID (fk)   
 Name 
集团

  GroupID (pk)              
  GName 
 ContactID (pk)                                                                   
 GroupID (fk)   
 Name 
联系方式

 ContactID (pk)                                                                   
 GroupID (fk)   
 Name 
地址

 ContactID (pk)                                                                   
 GroupID (fk)   
 Name 
AddressID (pk)
GroupID   (fk) 
ContactID (fk)
我想使用以下三个表执行以下操作:

Group, Contact and Address
 ContactID (pk)                                                                   
 GroupID (fk)   
 Name 
  • 当我删除/更新组详细信息时,必须删除/更新联系人和地址
  • 当我删除/更新联系人详细信息时,必须删除/更新联系人和地址
  • 我想按地址查找组(包含地址的组)
  • 如何在实体框架中以代码优先的方法解决它

     ContactID (pk)                                                                   
     GroupID (fk)   
     Name 
    
    如何在实体框架中以数据库优先的方式解决它

     ContactID (pk)                                                                   
     GroupID (fk)   
     Name 
    
    最后,

     ContactID (pk)                                                                   
     GroupID (fk)   
     Name 
    

    我在
    SQL
    数据库中创建这些表时遇到问题。我有一个循环依赖错误

    关于循环依赖,其原因是外键就位。因此,您应该首先创建
    表,然后创建
    联系人
    ,最后创建
    地址
    ,同样,删除行时,您应该从从属表(包含外键的表)开始

     ContactID (pk)                                                                   
     GroupID (fk)   
     Name 
    
    回答你们的问题

     ContactID (pk)                                                                   
     GroupID (fk)   
     Name 
    
  • 首先,由于其他表中只使用了
    GroupID
    ,因此您不必关心更新(我认为您不会更新ID!)。但要删除,首先需要使用
    地址表中的GroupID删除所有行。然后是
    联系人表中的所有行
    。只有这样,才能继续删除组表中的行

  •  ContactID (pk)                                                                   
     GroupID (fk)   
     Name 
    
  • 要删除联系人,您应先删除
    地址表
    中包含联系人ID的所有行,然后删除
    联系人表

  •  ContactID (pk)                                                                   
     GroupID (fk)   
     Name 
    
    3查找包含您地址的组

     ContactID (pk)                                                                   
     GroupID (fk)   
     Name 
    
    Select G.GroupId, G.GName 
    From   Group as G
    Left outer join Address A
    on A.GroupID    = G.GroupID   
    Where A.AddressID = 'Your Address ID'