Вызов хранимых процедур с параметрами в PetaPoco
Я хочу иметь возможность вызывать хранимую процедуру с именованными параметрами в PetaPoco.
Чтобы вызвать сохраненный процесс, который выполняет поиск/выборку:
Могу ли я сделать что-то вроде этого:
return db.Fetch<Customer>("EXEC SP_FindCust",
new SqlParameter("@first_name", fName),
new SqlParameter("@last_name", lName),
new SqlParameter("@dob", dob));
Кроме того, как я могу вызвать хранимый процесс, который выполняет вставку?
return db.Execute("EXEC InsertCust @CustID = 1, @CustName = AAA")
Спасибо,
Нак
Ответы
Ответ 1
Обновить:
Я попробовал следующее для извлечения и вставки, и это сработало отлично:
var s = PetaPoco.Sql.Builder.Append("EXEC SP_FindCust @@last_name = @0", lname);
s.Append(", @@first_name = @0", fName);
s.Append(", @@last_name = @0", lName);
s.Append(", @@dob = @0", dob);
return db.Query<Cust>(s);
Это может быть улучшено для передачи параметров SQL.
Ответ 2
Начиная с версии 6.0.344-бета, PetaPoco теперь поддерживает хранимые процедуры без необходимости использовать EXEC
. Смотрите https://github.com/CollaboratingPlatypus/PetaPoco/wiki/Stored-procedures
Ответ 3
В моем случае я сделал следующее
db.EnableAutoSelect = false;
return db.Fetch<Customer>(@"EXEC SP_FindCust
@@first_name = @first_name,
@@last_name = @last_name,
@@dob = @dob", new {
first_name = fName,
last_name = lName,
dob = dob
});
Это сработало!