Трябва ли да пиша класове, които представляват таблици на база данни, когато използвам Entity Framework? Например имам следните таблици: Account, Customer, Order,... Entity Framework ще ми предостави обекти Account, Customer, Order в допълнение към набора от обекти: Accounts, Orders, Customers .. и т.н. Сега правя ли трябва да опаковате тези обекти или не?
Обекти на данни в слоя бизнес логика при използване на Entity Framework
Отговори (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
Влизам в стар стил, така че използвам първия метод на базата данни. Не съм запознат с термина Domain Object, но се предполага, че означава обвиване на класовете с други класове. Както и да е, не виждам смисъл да добавям допълнителен слой сложност. От друга страна, премахването на такива класове ще означава, че моят слой за представяне ще говори директно с рамката на обекта и в слоя за представяне ще бъде в пряк контакт със слоя за достъп до данни, който трябва да бъде забранен.
- person Saleh Omar; 09.01.2013
Трябва да избирате между използването на обекти за достъп до данни директно от презентационния слой, което изобщо не е добра идея, или изграждането на още един слой между презентационния слой и слоя за достъп до данни с по-точно значение на
business object
и съпоставяне между data objects
и business objects
.
- person Alexander Balte; 09.01.2013