0
내 쿼리에는 여러 테이블이 포함되어 있으며 Dapper에서 읽은 것으로부터 적어도 하나의 쿼리 만 이해하는 예제 만 찾을 수 있습니다. 다음은Dapper - 여러 모델 쿼리
는 모델 폴더 아래 제 3 개 클래스입니다 :
나는 그러나이 방법은User
모델에 연결되어 내가 필요로하는 모든 정보를 얻을 수있는 다음 내 연결 코드와 방법을 가지고 내 저장소에서
public class User
{
public string UserName { get; set; }
public string UserId { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
}
public class Date
{
public string UserName { get; set; }
public string UserCode { get; set; }
public string LastLogin { get; set; }
}
public class Photo
{
public class UserName { get; set; }
public string UserId { get; set; }
public string PhotoUrl { get; set; }
}
하지만 사진을 가져와야하므로 컴파운드 클래스를 만들려고하면 User
및 Photo
모델을 볼 수 있으므로 User
DataView 만 필요하다는 오류가 발생합니다. 당신을 말끔 넣어 새/부가 가치를 기대 -
public List<User> GetAll()
{
using (SqlConnection cn = new SqlConnection(connectionString))
{
var allResults = cn.Query<User>("SELECT UserName, Email, Phone, (SELECT TOP 1 PhotoPath FROM Photo WHERE User.UserId = Photo.UserId) FROM User)
나는 User와 Photo가 서로 다른 클래스라고 생각한 두 개의 서로 다른 테이블이므로 항상 클래스가 데이터베이스의 테이블과 일치한다고 가정했습니다. 그렇지 않은가요? –
EntityFramework에서 - 예, Dapper에서 - 아니요. 필드 (쿼리)를 이름으로 속성 (클래스)에 매핑하기 만하면됩니다. 데이터 유형 만 신경 써야합니다. – Dmitry
클래스의 필드는 select 문에서 반환되는 열을 직접 반영해야합니다. 테이블이 무엇인지는 중요하지 않으며 select 문만 있습니다. – ganders