21

我希望能够在 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")

谢谢,纳克

4

3 回答 3

26

更新:

我尝试了以下获取和插入的方法,并且效果很好:

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 参数。

于 2011-08-05T17:54:59.103 回答
3

从 v6.0.344-beta 开始,PetaPoco 现在支持存储过程,无需使用EXEC. 见https://github.com/CollaboratingPlatypus/PetaPoco/wiki/Stored-procedures

于 2018-11-24T16:09:58.250 回答
2

就我而言,我做了以下

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
});

有效!

于 2019-03-28T12:15:20.623 回答