ฉันพยายามทำงานกับ Entity Framework เล็กน้อยและฉันมีคำถามเกี่ยวกับการแยกชั้น
ฉันมักจะใช้ UI -> BLL -> วิธี DAL และฉันสงสัยว่าจะใช้ภาษา EF ที่นี่ได้อย่างไร
DAL ของฉันมักจะเป็นอะไรที่ชอบ
GetPerson(id)
{
// some sql
return new Person(...)
}
BLL:
GetPerson(id)
{
Return personDL.GetPerson(id)
}
UI:
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;
}
}
จะทำอย่างไร?