함께 실행해야하는 몇 가지 쿼리가 있으며 QueryMultiple 기능을 사용하면됩니다.Dapper에서 MultiMapping과 QueryMultiple을 함께 사용하는 방법이 있습니까?
그러나이 경우에는 내가 어떻게 사용할 수 있는지 찾을 수 없었습니다 멀티 매핑.
누구나이 방법을 알고 있습니까?
함께 실행해야하는 몇 가지 쿼리가 있으며 QueryMultiple 기능을 사용하면됩니다.Dapper에서 MultiMapping과 QueryMultiple을 함께 사용하는 방법이 있습니까?
그러나이 경우에는 내가 어떻게 사용할 수 있는지 찾을 수 없었습니다 멀티 매핑.
누구나이 방법을 알고 있습니까?
나는 당신이 찾고있는 것이지만 실행하려고하는 쿼리의 예제 없이는 말하기 어렵다고 생각한다.
var sql = @"Select *
From Parent
Left Join Child on Child.ParentID = Parent.ParentID
Where Parent.ParentID = @id
... more queries";
using(var reader = connection.QueryMultiple(sql, new {id=selectedId}))
{
var stuff = reader.Read<Parent, Child, Parent>(
(p,c)=>p.Child = c, splitOn: "ChildId");
// Continue to read from the other queries in your sql.
}
기본적 SqlMapper.GridReader
의 Read
방법은 Query
확장 방법과 유사하다. splitOn
매개 변수는 두 가지 이상의 제네릭 형식을 사용하는 오버로드 중 하나만 사용합니다.
다른 스레드에서 가져온 간단한 예를 Theres는 : how-to-get-values-for-child-objects
var sql =
@"
select * from PROFILES where profileId= @id
select * from PROFILEIMAGES where OWNER_PROFILESIDFK = @id";
using (var multi = connection.QueryMultiple(sql, new {id=selectedId}))
{
var profile = multi.Read<Models.PROFILE>().Single();
profile.ProfileImages = multi.Read<Model.PROFILEIMAGES>().ToList();
}
각 쿼리는 다음 엔티티에 매핑 할 수있는 개체의 집합을 반환합니다.
알렉스. 하지만 [Multimapping] (https://github.com/SamSaffron/dapper-dot-net/blob/master/Tests/Tests.cs#L459) 기능을 사용하는 방법을 찾고 있습니다. –
예제를 제공해 주시겠습니까? 네가하려는 일에? – Alex
기본적으로 일부 필드는 SQL에 비정규 화되어 저장됩니다 (예 : ";"등으로 구분 된 모든 태그가있는 DTags 필드). QueryMultiple (Read 메서드)를 사용할 때 MultiMapping 쿼리 에서처럼 "split"매개 변수를 사용하는 옵션이 없습니다. –