मैं एंटिटी फ्रेमवर्क के साथ थोड़ा काम करने की कोशिश कर रहा हूं और मुझे परतों के अलगाव के बारे में एक सवाल मिला है।
मैं आमतौर पर UI -> BLL -> DAL दृष्टिकोण का उपयोग करता हूं और सोच रहा हूं कि यहां ईएफ का उपयोग कैसे किया जाए।
मेरी दाल आमतौर पर कुछ इस तरह होगी
GetPerson(id)
{
// some sql
return new Person(...)
}
BLL:
GetPerson(id)
{
Return personDL.GetPerson(id)
}
यूआई:
Person p = personBL.GetPerson(id)
मेरा सवाल अब यह है: चूँकि EF मेरा मॉडल और DAL बनाता है, क्या EF को अपने DAL के अंदर लपेटना एक अच्छा विचार है या यह सिर्फ समय की बर्बादी है?
अगर मुझे EF को लपेटने की आवश्यकता नहीं है, तो मैं अभी भी अपने Model.esmx को अपनी कक्षा की लाइब्रेरी के अंदर रखूँगा या क्या यह ठीक रहेगा कि इसे अपने BLL के अंदर रखूँ और वहाँ कुछ काम करूँ?
मैं वास्तव में EF को अपने DAL के अंदर लपेटने का कारण नहीं देख सकता, लेकिन मैं यह जानना चाहता हूं कि अन्य लोग क्या कर रहे हैं।
इसलिए उपर्युक्त होने के बजाय, मैं DAL को छोड़ दूंगा और बस करूंगा:
BLL:
GetPerson(id)
{
using (TestEntities context = new TestEntities())
{
var result = from p in context.Persons.Where(p => p.Id = id)
select p;
}
}
क्या करें?