Dapper 예제 코드의 설명

c# dapper

문제

나는 Dapper를 괴롭 히고 매우 근본적인 것을 놓치고있는 것처럼 보입니다. 누군가가 Dapper 홈페이지에서 가져온 다음 코드를 Google 코드에서 설명하고, From 절이없는 이유와 두 번째 매개 변수가 Query 메소드 (동적 ) 익명 형식이 전달됩니다,이 어떻게 든 명령 개체를 설정하는 수집하지만 단순한 필사적 인 용어 설명을 싶습니다.

스티븐, 고마워.

public class Dog {    
    public int? Age { get; set; }    
    public Guid Id { get; set; }    
    public string Name { get; set; }    
    public float? Weight { get; set; }    
    public int IgnoredProperty {
        get { return 1; }
    }
}

var guid = Guid.NewGuid();
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });            

dog.Count().IsEqualTo(1);
dog.First().Age.IsNull();
dog.First().Id.IsEqualTo(guid);

수락 된 답변

처음 두 예제는 단순하게 유지하기 위해 실제 데이터 액세스를 수행하지 않습니다.
예, connection ( connection.Query(...) )이 사용되었지만 Dapper의 메서드를 호출하는 유일한 방법이기 때문에 (IDbConnection 인터페이스를 확장하기 때문에).

이와 같은 것은 완벽하게 유효한 SQL 코드입니다.

select 'foo', 1

... 실제로 테이블에서 아무것도 선택하지 않고 즉석에서 결과를 "생성"합니다.

매개 변수 및 익명 형식의 예제는 다음과 같습니다.

var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid }); )

... 익명의 형식으로 SQL 매개 변수를 제출 하는 Dapper의 기능 보여줍니다.
다시 말하지만, 쿼리는 테이블에서 실제로 아무것도 선택하지 않습니다. 아마 단순하게 유지하기 위해서입니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.