2014-07-17 1 views
1

내 수업은 다음과 같습니다 multimapping 또는 이미 시도 복수의 결과와의 불가능일반 목록 속성과 참조 유형 속성이 dapper에있는 개체는 어떻게 포함합니까?

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;} 
} 

. 당신은 어떻게 위대한 일을합니까? 멀티 매핑 또는 여러 결과 또는 다른 옵션을 사용할 수 있다면 데이터베이스에서 왕복을 통해 주소 및 은행 계좌를 얻지 못하게하고 싶습니다.

+0

당신의 수업을 들음으로써 당신을 도울 수 없습니다. 지금까지 해 온 것을 보여주십시오. 정확히 당신이 달성하고 싶은 무엇입니까 ?? –

+0

@KrishnrajRana 나는 내 질문을 .. .. 고마워! –

+0

좋아요, 여러 개의 결과 집합을 가져 와서 ** Person ** class right에 바인딩하고 싶다는 뜻입니까? –

답변

2

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

여기에 하나의 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 

여기가 말끔의 QueryMultiple 방법을 사용하여 말끔 방법이다.

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; 
    } 
} 

희망이 도움이 될 수 있습니다 ... 최고입니다.

+0

고마워 ..이게 잘될거야! –

+0

@ JohnPatrickPo : 기꺼이 도와 주시면 감사하겠습니다. :) –

+0

메신저하지만 이건 그냥 SQL 쿼리로 수정하려고합니다. 내 DB에는 SP가 필요하지 않습니다.하지만 고마워요! –