Обекти на данни в слоя бизнес логика при използване на Entity Framework

Трябва ли да пиша класове, които представляват таблици на база данни, когато използвам Entity Framework? Например имам следните таблици: Account, Customer, Order,... Entity Framework ще ми предостави обекти Account, Customer, Order в допълнение към набора от обекти: Accounts, Orders, Customers .. и т.н. Сега правя ли трябва да опаковате тези обекти или не?


person Saleh Omar    schedule 09.01.2013    source източник


Отговори (2)


Без да знам вашите изисквания, мога просто да кажа "Не". EF генерира всички обекти на домейна и представя вашите таблици с набори от обекти.

person daryal    schedule 09.01.2013

EF генерира обектно представяне на таблични обекти. Но това не е същото като домейн обект.

Приложението трябва да работи с обекти на домейн, а не с EF обект.

Мисля, че писането на конкретни домейн класове е добра идея. Но това е сложен начин и в някои случаи добавя ненужен слой сложност.

Друг начин е да използвате EF CodeFirst, например http://msdn.microsoft.com/en-us/data/hh134698.

person Alexander Balte    schedule 09.01.2013
comment
Влизам в стар стил, така че използвам първия метод на базата данни. Не съм запознат с термина Domain Object, но се предполага, че означава обвиване на класовете с други класове. Както и да е, не виждам смисъл да добавям допълнителен слой сложност. От друга страна, премахването на такива класове ще означава, че моят слой за представяне ще говори директно с рамката на обекта и в слоя за представяне ще бъде в пряк контакт със слоя за достъп до данни, който трябва да бъде забранен. - person Saleh Omar; 09.01.2013
comment
Трябва да избирате между използването на обекти за достъп до данни директно от презентационния слой, което изобщо не е добра идея, или изграждането на още един слой между презентационния слой и слоя за достъп до данни с по-точно значение на business object и съпоставяне между data objects и business objects. - person Alexander Balte; 09.01.2013