2009-07-02 23 views
3

エンティティ/テーブルにlinqを使用してクエリを実行しようとしています。Entity Framework:リンクテーブル/多対多関係のクエリを実行します。

データベースの構造は次のとおりです。次のように、エンティティオブジェクトの構造がある

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

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

すべてのIDフィールドが主キーであるため、リンクテーブル(User_IPAddresses)には一意の行が含まれている必要があります。

私が抱えている問題は、更新する前にUser_IPAddressesテーブルの一意の行制約に違反しないように、エンティティをチェックする方法について頭を悩ますことができないということです。

私を助けることができるEF指導者はいますか?

答えて

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; 
} 
+1

あなたは天才です、ありがとう – Calanus

関連する問題