매개 변수 목록을 사용하는 더 복잡한 쿼리

c# dapper database mysql

문제

알려진 매개 변수 집합을 사용하여 Dapper를 사용하여 쿼리를 실행하려고하지만 해당 매개 변수의 값 목록이 있습니다. 내가 뭘하려고하는지에 대한 간단한 예제는 다음과 같다.

DateTime endDate = DateTime.Now;
DateTime startDate = endDate.AddHours(-24);

string query = "select COUNT(*) from Test where Status = @Status AND DateCreated <= @Hour;";
var stuff = con.Query(query, (startDate).ByHourTo(endDate).Select(hour => new
{
     Status = 1,
     Hour = hour,
}));

Dapper는 'Parameter'@Status '를 정의해야합니다'라는 예외를 발생시킵니다. Dapper는 대량 삽입 및 업데이트를 수행 할 때 매개 변수 목록을 처리 할 수 ​​있지만 선택 항목에 대해서는이 작업을 수행 할 수 없습니까?

수락 된 답변

아, 너 무슨 뜻인지 알 것 같아.

예. 쿼리에서 지원되지 않는 Execute 를 지원하는 시나리오가 있습니다. 구체적으로는 다양한 매개 변수 값 범위에서 동일한 작업을 순차적으로 실행하는 것입니다. 이것은 Execute 에 대해 의미가 있지만 쿼리의 경우에는 in 사용하여 다른 쿼리를 살펴야 함을 의미합니다. 또는 루프 및 연결.

대신 단일 매개 변수 객체를 찾고 공개 값을 찾고 있습니다. 즉, enumerable에는 dapper에 대한 적절한 매개 변수 값이 없습니다.


인기 답변

이 시도:

List<string> names = new List<string> { "Bob", "Fred", "Jack" };
string query = "select * from people where Name in @names";
var stuff = connection.Query<ExtractionRecord>(query, new {names});


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow