2013-10-31 3 views
2

Dapper ORM을 사용하여 데이터베이스를 쿼리하고 있습니다. 쿼리 구문에 익숙해졌지만 매개 변수에 문제가 있습니다.SQL 쿼리의 매개 변수 설정에 대해 혼동을 들었습니다.

orders = ctx.Query<OrderView>(myQuery, new { Seller = 104386, StatusID = 2, query = "people"}); 

이이 값에 MYQUERY (@Seller, @StatusID, @query)의 매개 변수를 매핑하고 제대로 작동 : 여기

가 작동하는 쿼리입니다.

그러나 내 프로그램에서는 매개 변수를 즉시 생성하고 List<ObjectParameter>에 저장하므로 각 매개 변수에는 이름과 값이 있습니다. 그러나이 질문에 올바르게 작동하도록 가져올 수 없습니다. 여기에 작동하지 않는 내용의 예입니다

orders = ctx.Query<OrderView>(myQuery, parameters.toArray()); 

나는 또한 List<SqlParameter>에 그 변환 해봤지만 그 중 하나가 작동하지 않습니다. 누구든지 내 매개 변수 목록 작업 쿼리를 복제 할 수있는 방법을 알고 있습니까?

답변

2

ObjectParameter은 EF 일 (System.Data.Entity.dll)이며 대단원으로 사용되지 않습니다. 예를 들어 당신이 정말ObjectParameter를 사용하려면 - - 그건 너무 괜찮아요 당신이 더 많은 컨트롤을 할 경우

var args = new DynamicParameters(); 
... 
args.Add(name, value); // there are more complex usages, note 
... 
connection.Query<OrderView>(myQuery, args); 

가 : 당신은 SqlMapper.IDynamicParameters를 구현하는 자신의 유형을 쓰기 당신은 단정 한 조립/네임 스페이스 내에서, DynamicParameters을 원하는 , 그것을 대퍼에게 건네 줘.

관련 문제