홈>
역할 목록이있는 사용자와 다 대다 관계를 매핑하려고합니다
이 질문 Dapper Many-to-Many Query 로 시도했지만 각각 하나의 역할을 가진 여러 사용자를 제공했습니다.
대신 QueryMultiple 문을 사용하려고합니다. 내 문제는 전자 메일에서 사용자를 쿼리하지만 사용자 ID에서 역할을 쿼리해야한다는 것입니다. 따라서 첫 번째 쿼리 문의 결과에 액세스하여 ID를 두 번째 쿼리에 전달해야합니다. 어떻게해야합니까?
public async Task<User> GetUserByEmailAsync(string email, CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
using (var connection = new SqlConnection(_options.ConnectionString))
{
await connection.OpenAsync(cancellationToken);
var results = await connection.QueryMultipleAsync(@"SELECT * FROM [User] WHERE Email = @email; " +
"SELECT Id, Name, NormalizedName FROM [Role] JOIN [UserRole] ON [Role].Id = UserRole.RoleId" +
" WHERE [UserRole].UserId = 2", // <-- NEED TO INSERT USER ID DYNAMICALLY HERE
new
{
email
});
var user = await results.ReadSingleAsync<User>();
var roles = await results.ReadAsync<Role>();
foreach (var role in roles)
{
user.Roles.Add(role);
}
return user;
}
}
- 답변 # 1
관련 자료
- Python Selenium을 사용하여 첫 번째 Yahoo 검색 결과를 클릭하는 방법
- 내 CSS로 첫 번째 입력 만 선택하는 방법은 무엇입니까?
- mysql - 하위 쿼리 선택을 사용할 때 빈 결과
- sql - 각 클라이언트에 대해 첫 번째 및 n 번째 순서를 선택하십시오
- ms word - 줄에서 첫 번째 문자열의 모든 것을 선택하는 방법이 있습니까?
- postgresql - 조 인당 결과 수가 n보다 작은 JOIN을 사용하여 선택 하시겠습니까?
- abap - 빈 조건에 대한 기본 결과로 SELECT?
- 결과에 특정 수량의 숫자가 포함 된 경우 선택 (mysql)에서 문자 제거
- sql - 각 부서에서 하나의 레코드 또는 첫 번째 테스트 이름을 선택하는 방법은 무엇입니까?
- Scala Spark-> DataFrame에서 처음 15 개 열 선택
- javascript - knex SELECT 후 배열 값에 액세스
- PROLOG에서 목록의 첫 번째와 마지막 요소 만 선택하는 방법이 있습니까?
- mysql - 열 값이 처음 나타나는 행을 선택하는 방법은 무엇입니까?
- postgresql - SQL-92 필터 결과 및 세트의 첫 번째 행에 대한 쓰기
- c++ - 세 개의 std - : vector를 추가하고 결과를 첫 번째 벡터에 저장합니다
- sql - 조인 된 다른 테이블에서 첫 번째 행만 선택
- node.js - mysql을 사용하여 선택 요청 결과를 nodejs의 배열로 변환
- PHP MYsql | 숫자가 더 낮은 처음 4 개 항목을 선택하세요
- python - 데이터 세트의 첫 번째 열을 선택하는 방법은 무엇입니까?
- c - `select`를 호출하지 않은 FD_ISSET의 결과
현재 완전히 테스트 할 수는 없지만이 방법을 사용하여 특정 사용자에 대한 모든 역할을 채우면 결과적으로 단일 사용자를 얻을 수 있습니다