Dapper काफी व्यापक रूप से संग्रहीत प्रक्रिया समर्थन है।
तुच्छ:
create proc spGetOrder
@Id int
as
select * from Orders where Id = @Id
select * from OrderItems where OrderId = @Id
यह निम्नलिखित के साथ मैप किया जा सकता।
- एक बहु नक्शाकार कि आप एकल पंक्तियों से अधिक ऑब्जेक्ट को
- इनपुट, आउटपुट और वापसी पैरामीटर समर्थन डेटाबेस विशिष्ट के लिए
- एक एक्स्टेंसिबल इंटरफ़ेस अनुमति देता है:
var grid = cnn.QueryMultiple("spGetOrder", new {Id = 1}, commandType: CommandType.StoredProcedure);
var order = grid.Read<Order>();
order.Items = grid.Read<OrderItems>();
इसके अतिरिक्त आप के लिए समर्थन पैरामीटर हैंडलिंग (टीवीपी की तरह)
तो उदाहरण के लिए:
create proc spGetOrderFancy
@Id int,
@Message nvarchar(100) output
as
set @Message = N'My message'
select * from Orders join Users u on OwnerId = u.Id where Id = @Id
select * from OrderItems where OrderId = @Id
return @@rowcount
साथ मैप किया जा सकता है:
var p = new DynamicParameters();
p.Add("Id", 1);
p.Add("Message",direction: ParameterDirection.Output);
p.Add("rval",direction: ParameterDirection.ReturnValue);
var grid = cnn.QueryMultiple("spGetOrder", p, commandType: CommandType.StoredProcedure);
var order = grid.Read<Order,User,Order>((o,u) => {o.Owner = u; return o;});
order.Items = grid.Read<OrderItems>();
var returnVal = p.Get<int>("rval");
var message = p.Get<string>("message");
अंत में, साफ-सुथरी भी एक कस्टम पैरामीटर कार्यान्वयन के लिए अनुमति देता है:
public interface IDynamicParameters
{
void AddParameters(IDbCommand command);
}
जब इस इंटरफेस को लागू आप डैप्पर क्या मापदंडों बता सकते हैं आप अपने आदेश में जोड़ना चाहते हैं। यह आपको टेबल-मूल्यवान पैरामीटर और अन्य डेटाबेस विशिष्ट विशेषताओं का समर्थन करने की अनुमति देता है।
You're using it now on Stack Overflow ...
संभव डुप्लिकेट [कौन सी ओआरएम संग्रहीत प्रक्रियाओं का उपयोग करते समय सबसे अच्छा है] (http://stackoverflow.com/questions/687762/which-orm-is-the-best-when-using-stored-procedures) – jgauffin
@ jgauffin: मुझे लगता है कि यह सवाल 2 साल के बाद मान्य है। मार्च 200 9 – gbn
के बाद से सभी नई चीजों के बारे में सोचें यह एक डुप्लिकेट नहीं है। मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या एक ओआरएम या एडाप्टर पैरामीटर में मूल्यवान तालिका के साथ उचित नौकरी कर सकता है, जबकि ado.net क्या करता है। – Candide