Jeden ze správných postupů (asi ne jediný, ale zaleží na scénáři a zvolené architektuře aplikace) by mohl být asi následující: 1) V DL máte objekt UserEntity (nebo User z namespace něco.Entities) což je objekt odpovídající tabulce v DB pro EF code first. Pomoci něho DL přistupuje na data. 2) V BL máte (v tomto případě asi poměrně jednoduchý) model/"business objekt" User (nebo User z namespace něco.Models) což je model pro prezentační vrstvu. BL vrstva bude mít např. nějakou metodu, která zavolá DL vracející IEnumerable<UserEntity>, každé UserEntity předělá na User a vrátí IEnumerable<User>. 3) UI o DL neví, potřebuje znát pouze User. User a UserEntity se liší například v tom, že obsahuje dotažené údaje z jiných tabulek, "složeniny" (jako FullName), jiné odvozené údaje apod. Naopak již neobsahuje reference na jiné Entity. Toto je příklad jednoduchého případu, ale u složitějších případů se úplně normálně může stát, že model a zdrojová entita/entity si vůbec neodpovídají a ty objekty těchto dvou vrstev jsou úplně různé. Také se koukněte na tuto diskuzi, ve které se řešila volba vrstev aplikace: http://www.dotnetportal.cz/forum/tema/26...
|