0
직장에서 우리는 Dapper
을 사용하고 있습니다. 기존의 코드베이스에서는 마스터/디테일 오브젝트가 별도로로드됩니다. 일반적으로 이것은 모든 마스터 레코드에 대해 실행 된 하나의 SQL 문과 세부 레코드 당 하나의 SQL 문이 실행된다는 것을 의미합니다.Dapper가 전화를 건 후에 마스터/세부 레코드를 매핑하십시오.
public class Zoo
{
Guid Id { get; set; }
string Name { get; set;}
IList<Monkey> Monkeys { get; set; }
}
public class Monkey
{
Guid Id { get; set; }
Guid ZooId { get; set; }
string Name { get; set; }
bool DeservesBanana { get; set; }
}
var sqlZoos = "SELECT * FROM Zoos"
var Zoos = connection.Query(sqlZoos)
var sqlMonkeys = "SELECT * FROM Monkeys"
var Zoos = connection.Query(sqlZoos)
foreach(var zoo in Zoos)
{
zoo.Monkeys = Monkeys.Where(x => x.ZooId = zoo.Id).ToList();
}
를 내가 대체하는 데 사용할 수있는 Dapper
에서 도우미 메서드 또는 뭔가 있나요 : 성능을 개선하고 전환을 쉽게하기 위해
, 나는 Dapper
를 사용하여이 전화를 걸 함께 결과를 스티치 싶습니다 foreach
. 대신 AutoMapper
과 같은 것을 사용해야합니까? 또는 .NET 라이브러리를 사용하여 루프를 구현하는 더 좋은 방법이 있습니까 (foreach
루프보다)?
감사합니다. 궁극적으로 단일 SELECT 문을 수행하도록 코드를 다시 작성하려고합니다. 그러나 다시 작성해야하는 _lot_ 코드가 있습니다. 여러 개의 쿼리를 수행 한 후 데이터를 결합하는 가장 간단한 방법을 고안하면 마찰이 가장 적은 'Dapper'를 도입 할 수 있습니다. – Mitkins