문제

엔티티/테이블이 업데이트하기 전에 동일한 값을 포함하지 않도록 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;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top