हाल ही में मैं अपने आप को डेटा का उपयोग परत का चयन तरीकों जहां कोड सब यह सामान्य रूप लेता लिख पाते हैं सुधार करने के लिए कैसे:डेटा का उपयोग परत का चयन विधि पैटर्न
public static DataTable GetSomeData(... arguments)
{
string sql = " ... sql string here: often it's just a stored procedure name ... ";
DataTable result = new DataTable();
// GetOpenConnection() is a private method in the class:
// it manages the connection string and returns an open and ready connection
using (SqlConnection cn = GetOpenConnection())
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
// could be any number of parameters, each with a different type
cmd.Parameters.Add("@Param1", SqlDbType.VarChar, 50).Value = param1; //argument passed to function
using (SqlDataReader rdr = cmd.ExecuteReader())
{
result.Load(rdr);
}
}
return result;
}
या इस तरह:
public static DataRow GetSomeSingleRecord(... arguments)
{
string sql = " ... sql string here: often it's just a stored procedure name ... ";
DataTable dt = new DataTable();
// GetOpenConnection() is a private method in the class:
// it manages the connection string and returns an open and ready connection
using (SqlConnection cn = GetOpenConnection())
using (SqlCommand cmd = new SqlCommand(sql, cn))
{
// could be any number of parameters, each with a different type
cmd.Parameters.Add("@Param1", SqlDbType.VarChar, 50).Value = param1; //argument passed to function
using (SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.SingleRow))
{
dt.Load(rdr);
}
}
if (dt.Rows.Count > 0)
return dt.Rows[0];
return null;
}
इन विधियों को बिजनेस लेयर कोड द्वारा बुलाया जाएगा जो तब बेस डेटाटेबल या डेटा रिकॉर्डॉर्ड को दृढ़ता से टाइप की गई व्यावसायिक ऑब्जेक्ट्स में परिवर्तित करता है जो प्रस्तुति स्तर का उपयोग कर सकते हैं।
चूंकि मैं बार-बार समान कोड का उपयोग कर रहा हूं, इसलिए मैं यह सुनिश्चित करना चाहता हूं कि यह कोड सबसे अच्छा हो। तो यह कैसे सुधार किया जा सकता है? और, क्या यह सामान्य कोड को अपनी विधि से बाहर ले जाने की कोशिश करने लायक है। यदि हां, तो यह तरीका कैसा दिखता है (विशेष रूप से एसकल्प पैरामीटर संग्रह को पास करने के संबंध में)?
आप इस मैं क्या बस के रूप में करते हैं। बहुत बढ़िया! एक चीज जिसमें मुझे रूचि है, यह है कि आप अपने बीएएल बनाम अपने डीएएल बनाम तर्कसंगत रूप से/phyiscally कैसे सेट करते हैं - क्या आप इसे अपनी परियोजना में डालते हैं? या नामस्थान के रूप में? और क्या? – dfasdljkhfaskldjhfasklhf
यदि कोई पैरामीटर नहीं है तो आप डेटरेडर को भी ढेर कर सकते हैं। डीएएल अपनी स्वयं की असेंबली में है, डीएएल + बीएल एक आम पेरेंट नेमस्पेस साझा करेगा। –
हां यह है कि मैं इसे कैसे करता हूं। व्यावसायिक वस्तुओं और डीएएल वस्तुओं के बीच आपका मानचित्रण क्या है? यानी आप 1: 1 जाते हैं? एक बात जो मैंने दिलचस्प देखी वह वह व्यक्ति था जिसने व्यापारिक वस्तु में डीएएल खींच लिया और इसे कोडस्मिथ के साथ बाहर निकाला। बहुत रोचक – dfasdljkhfaskldjhfasklhf