어떻게 dapper에 일반 목록 속성과 참조 유형 속성이있는 객체를 포함합니까?

c# dapper dapper-extensions

문제

내 수업은 다음과 같습니다.

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public List<Address> Addresses { get; set; }
    public BankAccount Account { get; set; }
}

public class Address
{
     public string Street { get; set; }
     public string City { get; set; }
     public string Zipcode { get; set; }
} 

public class BankAccount
{
      public decimal Balance {get; set;} 
      public DateTime LastDateWithdrawn { get; set;}
}

다중 매핑 또는 이미 시도한 여러 결과로 불가능합니다. 당신은 어떻게 위대한 일을합니까? 내가 원하는 것은 다중 매핑 또는 다중 결과 또는 다른 옵션을 사용할 수있는 경우 데이터베이스에 대한 왕복을 주소 및 은행 계좌로 가져 오는 것이 아닙니다.

수락 된 답변

귀하의 의견을 읽고, 나는 당신에게 대답하려고 노력했습니다.

여기에 하나의 SP가 있다고 가정 해 보겠습니다.

Create PROCEDURE [dbo].[GetPersonDetail]
(
    @PersonId int
)
AS  
SET NOCOUNT ON
BEGIN

    -- 1). Get Person detail
    Select * from PersonMaster Where PersonId = @PersonId


    -- 2). Get Person Addrss
    Select * from PersonAddress Where PersonId = @PersonId

    -- 1). Get Person BankAccount
    Select * from BankAccount Where PersonId = @PersonId

End

Dapper의 QueryMultiple 메소드를 사용하는 dapper 메소드가 있습니다.

public Person GetPersonDetail(int PersonId)
{
    try
    {
        var oPara = new DynamicParameters();
        oPara.Add("@PersonId", PersonId, dbType: DbType.Int);

        var person = new Person();
        using (var multiResults = _connection.QueryMultiple(GetPersonDetail, oPara, commandType: CommandType.StoredProcedure))
        {
            person.Person = multiResults.Read<Person>().FirstOrDefault();
            person.Addresses = multiResults.Read<Address>();
            person.BankAccount = multiResults.Read<BankAccount>().FirstOrDefault();
        }
        return person;
    }
    catch (Exception ex)
    {
        thow;
    }
}

희망이 당신을 도울 수 있습니다 ... 모든 최고.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow