0

我有三张桌子:

Group, Contact and Address

团体

  GroupID (pk)              
  GName 

接触

 ContactID (pk)                                                                   
 GroupID (fk)   
 Name 

地址

AddressID (pk)
GroupID   (fk) 
ContactID (fk)

我想使用这三个表进行跟踪:

  1. 当我删除/更新组详细信息时,必须删除/更新联系人和地址。
  2. 当我删除/更新联系方式时,必须删除/更新联系方式和地址。
  3. 我想按地址查找组(包含地址的组)。

如何在实体框架中以代码优先的方法解决它?

如何在实体框架的数据库优先方法中解决它?

最后;

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

4

1 回答 1

0

关于循环依赖,它是由于外键到位。所以你应该从创建Group表开始,然后Contact最后Address以同样的方式,当删除一行时,你应该从依赖表开始(那些包含外键的表)

并回答您的问题;

  1. 首先,由于GroupID其他表中只使用了 ,因此您不必关心更新(但我认为您不会更新 ID!)。但是要删除,您需要先删除所有使用 GroupID 的行Address table。然后Contact table. 只有这样,您才能继续删除Group table.

  2. 要删除联系人,您应该首先删除所有带有 ContactID 的行Address table,然后是Contact table.

3 找到包含您地址的群组;

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'
于 2013-09-16T04:55:07.510 回答