2013-02-15 2 views
1

데이터베이스에서 생성 된 Entity Framework가 있습니다. 이 데이터베이스에는 Employee_ID 및 User_Name의 두 필드로 구성된 User_Security_Role이라는 테이블이 있습니다. 두 필드 모두 기본 키 역할을하며 외래 키입니다. 이 필드는 Sytem_Role (Role_ID가 PK 인 테이블)과 User_Identity (PK가 User_Name 인 테이블)에 있습니다. .edmx 파일이 생성되면 User_Security_Role 테이블은 테이블로 생성되지 않고 두 엔티티 인 System_Role 및 User_Identity 사이의 연관 세트로 생성됩니다.LINQ 전체 쿼리 쿼리

내가 쿼리와 EF 쿼리 싶습니다 그러나

var usr = from u in _imEntities.User_Security_Role 
      where u.Role_ID == 3 
      select u.User_Name; 

을은 "User_Security_Role"는 엔티티 집합의 엔티티로 표시되지 내가 지금 그것을 조회하는 방법을 잘 모르겠습니다 그것은 Association Set입니다. 엔터티가 아닌 연관에서 데이터를 선택하는 linq 쿼리를 작성하려면 어떻게해야합니까?

+0

당신이 수정할 수 있습니다 질문 :이 경우, 다음 중 하나와 같은 쿼리를 작성합니다? – spajce

+0

EDMX에서 User_Security_Role 테이블을 볼 수 있습니까? –

+0

아니요, 엔티티로 간주되지 않습니다. 이것은 EDMX의 User_Identity와 System_Role 엔티티 사이의 관계로 볼 수 있습니다. – user2030579

답변

0

EF가 User_Security_Role 테이블을 불필요한 테이블로 식별 한 것처럼 보입니다 (아마도 그럴 것입니다).

var usr = From u in _imEntities.User_Identities 
      where u.Roles.Any(r => r.Role_ID == 3) 
      select u; 

또는

var usr = from r in _imEntities.System_Roles 
      where r.Role_ID == 3 
      from u in r.UserSecurities 
      select u; 
+0

sooo 많은 감사합니다. 나는 며칠 동안 이것에 있었다! !! 나는 두 번째 옵션을 사용했다. 이것은 많은 문제를 해결했습니다. 다시 감사드립니다 ... – user2030579

+0

User_Security_Role 테이블 (연관 집합)에 데이터를 어떻게 추가 할 수 있는지 말해 줄 수 있습니까? _imEntities.AddObject ("User_Security_Role", user1); _imEntities.SaveChanges(); – user2030579

+0

중간 테이블에 직접 데이터를 추가하지 마십시오. OOP 관점에서 이것을 생각하십시오. 이 경우, 사용자'currentUser = (_imEntities.Users.First (u => u.UserId = 123)'을 선택하고 그 사용자에게 기존 역할을 추가하십시오 .' currentUser.Roles.Add (role)' –