Dapper를 사용하여 저장 프로 시저를 호출하려고합니다. 지금까지 본 모든 코드는 @ 문자로 저장 프로 시저 매개 변수를 지정하여 수행합니다. 이는 간단히 모델 클래스를 정의하여 Dapper의 Query 또는 Execute 메소드로 전달할 수 없다는 것을 의미합니다. 모델 인스턴스를 다시 변환하면 시간과 메모리가 낭비되는 것처럼 보입니다. 이게 내가 정말로해야 할 일이야?Dapper로 T-SQL 저장 프로 시저를 호출 할 때 '@'를 사용해야합니까?
예를 들어, 아래 코드는 모델 인스턴스를 허용합니다. 모델에는 sp_GetUser 테이블의 모든 속성이 있습니다. Dapper는 호출 할 때 저장 프로 시저의 매개 변수에 해당 모델 속성을 전달해야합니다. 이 경우 또는 'param'매개 변수에 전달할 개체를 실제로 정의해야합니까?/:이
같은
public IList<User> GetUsers(UserSP user)
{
using (var cn = new SqlConnection(ConnectionString))
{
var users = cn.Query<User>("sp_GetUsers",
param: new
{
@Id = user.Id,
@NAme = user.Name,
@Age = user.Age
},
commandType: CommandType.StoredProcedure).ToList();
return users;
}
}
아니, 당신은에서 @ - CHARACTER를 (사용할 필요가없는 https로 클래스를 채울 /github.com/StackExchange/Dapper#parameterized-queries) – peco
굉장합니다. 프로 시저의 매개 변수에 매핑 할 수있는 속성 만 전달해야합니까? –
시도해 볼 수 있습니까? param : user – Crowcoder