Dapper를 가지고 놀면서, 지금까지의 결과에 매우 만족합니다!Dapper에서 멀티 맵핑을 사용할 수 없습니다.
하지만 지금은 두 테이블 (Student
및 Address
테이블)에서 데이터를 읽는 것이 좋습니다.
Student
테이블의 기본 키가 StudentID (INT IDENTITY)
이고 Address
이 AddressID (INT IDENTITY)
입니다. Student
에는 테이블로 연결되는 AddressID
이라는 FK도 있습니다.
나의 생각은 내가 관심이있는 속성으로, 두 개의 클래스, 각 테이블을 만드는 것이 었습니다. 또한, 나는 C#에서 내 Student
클래스에 유형 Address
의 PrimaryAddress
속성을 넣어.
var data = connection.Query<Post, User>(sql, (post, user) => { post.Owner = user; });
var post = data.First();
하는 Post
과 User
를 검색하고, 소유자를 게시물이 사용자에게 설정됩니다. 반환되는 유형은 Post
입니다. 맞습니까?
var student = _conn.Query<Student, Address>
("SELECT s.*, a.* FROM dbo.Student s
INNER JOIN dbo.Address a ON s.AddressID = a.AddressID
WHERE s.StudentenID = @Id",
(stu, adr) => { stu.PrimaryAddress = adr; },
new { Id = 4711 });
: 리턴 된 첫 번째로
Student
, 두 번째로
Address
, 학생 인스턴스에 저장됩니다 -
그래서 내 코드에서 나는 일반 Query
확장 메서드에 두 개의 매개 변수를 정의
문제는 - 내가 Visual Studio에서 오류 얻을 : 일반적인 방법 'Dapper.SqlMapper.Query를 사용
을 (System.Data.IDbConnection, 문자열 System.Func, 동적, System.Data.IDbTransaction, 부울, 문자열, INT? System.Data.CommandType은?) '6 개 형태 인수를
난 정말 이유를 단정을 이해하지 못하는이 필요 이 오버로드를 6 가지 형식의 인수로 사용하는 것을 주장합니다 ...
나는 똑같은 문제를 겪고과 이유를 알아낼 걸 렸어요 - 샘이 설명으로! –