问题
I want to be able to call a stored proc with named parameters in PetaPoco.
In order to call a stored proc that does a search/fetch:
Can I do something like this:
return db.Fetch<Customer>("EXEC SP_FindCust",
new SqlParameter("@first_name", fName),
new SqlParameter("@last_name", lName),
new SqlParameter("@dob", dob));
Also, how can I call a stored proc that does an insert?
return db.Execute("EXEC InsertCust @CustID = 1, @CustName = AAA")
Thanks, Nac
回答1:
Update:
I tried the following for fetch and insert and it worked perfectly:
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);
This can be improved further to pass SQL parameters.
回答2:
In my case, I did the following
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
});
It worked!
回答3:
As of v6.0.344-beta, PetaPoco now supports stored procedures without needing to use EXEC
. See https://github.com/CollaboratingPlatypus/PetaPoco/wiki/Stored-procedures
来源:https://stackoverflow.com/questions/6950420/calling-stored-procedures-with-parameters-in-petapoco