2015-10-06 13 views
5

używam Dapper do wywołania procedury przechowywanej, które mają obowiązkowy parametr @idProjectObowiązkowe parametry, Dapper i System.Data.SqlClient.SqlException

to jest mój kod fragment:

using (var c = _connectionWrapper.DbConnection) 
     { 
     var result = c.Query<Xxx>("dbo.xxx_xxxGetPage", new { @idProject = 1 }).AsList(); 
     return result; 
     } 

Powinna działać, ale wyjątek:

wyjątek typu „System.Data.SqlClient.SqlException” wystąpił w system.data.dll ale nie było obsługiwane w kodzie użytkownika

Dodatkowe informacje: Procedura lub funkcja "xxxGetPage" oczekuje parametru "@idProject", który nie został dostarczony.

Dlaczego?

+1

usunąć '@' i sprawdzić, czy to działa. –

Odpowiedz

3

Myślę, że brakuje CommandType.

using (var c = _connectionWrapper.DbConnection) 
{ 
    var result = c.Query<Xxx>("dbo.xxx_xxxGetPage", new { idProject = 1 }, commandType: CommandType.StoredProcedure).AsList(); 
    return result; 
} 

Domyślnie dapper używa tekstu.

https://github.com/StackExchange/dapper-dot-net

+0

prawda, moja zła ... Dziękuję – InferOn

0

spróbuj tego:

var result = c.Query<Xxx>("dbo.xxx_xxxGetPage", new {1}).AsList();