实体框架:在链接表/多对多关系上执行查询
问题描述:
我试图执行一个查询使用linq实体到一个实体/表不包含相同的值之前,我更新它。实体框架:在链接表/多对多关系上执行查询
数据库的结构如下:
Users User_IPAddresses IPAddresses
----- ---------------- -----------
UserID >------ UserID ------< IPAddressID
User IPAddressID Address
所以,该实体对象的结构如下
UserSet IPAddressSet
------- >-----< ------------
User IPAddress
所有ID字段是主键,所以链路表(User_IPAddresses)必须包含唯一的行。
我遇到的问题是,我无法弄清楚如何检查实体,以便在更新之前不违反User_IPAddresses表上的唯一行约束。
任何EF大师可以帮助我吗?
答
//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;
}
T你是个天才,谢谢 – Calanus 2009-07-02 21:45:33