我正在尝试使用linq到实体执行查询,实体/表在更新之前不包含相同的值。
数据库的结构如下:
Users User_IPAddresses IPAddresses
----- ---------------- -----------
UserID >------ UserID ------< IPAddressID
User IPAddressID Address
因此,实体对象的结构如下
UserSet IPAddressSet
------- >-----< ------------
User IPAddress
所有ID字段都是主键,因此链接表(User_IPAddresses)必须包含唯一的行。
我遇到的问题是我无法理解如何检查实体,以便在更新之前不违反User_IPAddresses表上的唯一行约束。
那里的EF大师可以帮助我吗?
答案 0 :(得分: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;
}