업데이트 쿼리에서 두 객체 매핑

dapper

문제

Dapper는이 쿼리를 car 객체에 매핑 할 수 있습니다. 자동차의 어느 속성이 쿼리에서 어떤 변수로 이동하는지 알 수 있습니다.

Car car = new Car();
conn.Execute(
      "UPDATE CAR" +
      " SET COLOR=@Color,MODEL=@Model" +
      " WHERE ID=@Id", car;

그러나 다른 변수를 쿼리에 추가 할 수 있습니까? 예 :

int c = 1000; 
conn.Execute(
      "UPDATE CAR" +
      " SET COLOR=@Color,MODEL=@Model,COST=@cost" +
      " WHERE ID=@Id", car, new { cost = c };

car 객체의 모든 속성을 쿼리의 변수와 일치시키지 않고도이 작업을 수행하고 싶습니다. 여기에 예제 클래스가 있지만 실제 클래스에는 더 많은 속성이 있습니다.

public class Car {
    public int Id { get; set; }
    public string Color { get; set; }
    public string Model { get; set; }
}

수락 된 답변

더 나은 답변이있을 수도 있지만 지금은 효과가 있습니다.

int c = 1000; 
conn.Execute(
      "UPDATE CAR" +
      " SET COLOR=@Color,MODEL=@Model,COST=" + c +
      " WHERE ID=@Id", car;

인기 답변

나는 보통 모든 매개 변수에 대해 새 동적을 만듭니다. 예 :

var car = new Car();
car.Color = "Black";
car.Model = "BMW";
car.Id = 123;
var cost = 53000

DbConnection.Execute(@"update car set color=@color, model = @model, cost = @cost where id = @id",
                new { color = car.Color, model = car.Model, cost = cost, id=car.Id});

이렇게하면 여러 객체 / 변수에서 동적을 조합 할 수 있습니다.



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