3

我正在尝试使用 linq 对实体执行查询,以使实体/表在更新之前不包含相同的值。

数据库的结构如下:

Users             User_IPAddresses          IPAddresses
-----             ----------------          -----------
UserID   >------  UserID           ------<  IPAddressID
User              IPAddressID               Address

所以,实体对象的结构如下

UserSet          IPAddressSet
-------  >-----< ------------
User             IPAddress

所有 ID 字段都是主键,因此链接表 (User_IPAddresses) 必须包含唯一行。

我遇到的问题是我无法弄清楚如何检查实体,以便在更新之前不会违反 User_IPAddresses 表上的唯一行约束。

有任何 EF 大师可以帮助我吗?

4

1 回答 1

4
//returns true if pair exists
public bool CheckIfUserIPPairExists(int ipID, int userID)
{

   bool exists 
      = db.UserSet.Any(user=>user.UserID==userID 
                             && user.IPAddress.Any(ip=>ip.IPAddressID == ipID));
   return exists;
}
于 2009-07-02T19:47:21.773 回答