("가입" "junction") 테이블. 이런 식으로 뭔가 (당신이 User
및 Role
에 대해 말하고있는,하지만 그건 중요하지의 가능성) :이 링크 테이블에 직접 액세스 할 수 없지만
public class One
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Two> Twos { get; set; }
}
public class Two
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<One> Ones { get; set; }
}
public class MyDbContext : DbContext
{
public DbSet<One> Ones { get; set; }
public DbSet<Two> Twos { get; set; }
}
, 당신은 결합 된 두 개의 "주요"테이블 중 하나를 사용할 수 있습니다 다른 탐색 속성으로
var db = new MyDbContext();
을 부여 그래서
, 모두
int count =
(from one in db.Ones
from two in one.Twos
where one.Id == input_parameter1_from_code && two.Id == input_parameter2_from_code
select new { one, two })
.Count();
및
int count =
(from two in db.Twos
from one in two.Ones
where one.Id == input_parameter1_from_code && two.Id == input_parameter2_from_code
select new { one, two })
.Count();
과 유사한 동일한 SQL 쿼리를 생성합니다 :
SELECT
[GroupBy1].[A1] AS [C1]
FROM (SELECT
COUNT(1) AS [A1]
FROM [dbo].[TwoOne] AS [Extent1]
WHERE (1 = [Extent1].[One_Id]) AND (2 = [Extent1].[Two_Id])
) AS [GroupBy1]
을
당신이 볼 수 있듯이 링크 테이블에 대한 것입니다.
'? 그것은 데이터베이스에있는 테이블입니까? 관점? –
@GiladGreen 예 내 데이터베이스의 테이블입니다. – ITWorker
@GiladGreen 예 일반 일반 테이블의 이름입니다. 그것은 실제로 "AppRoleAppPrivileges"라고하지만 여기에 내 질문에 "joinTable"로 만들었습니다. – ITWorker