Jusqu'à présent que je rassemblais, LINQ aux entités encourage le chargement désireux avec Load()
ou Include()
. Cependant, je me demande où le chargement impatient devrait avoir lieu dans une application multicouche?Désireuse chargement et LINQ to Entities
Est-il correct pour la couche d'accès aux données (une classe référentiel encapsuler l'instance entité) pour avoir une fonction Item GetItem(int id)
générique, et dans la couche logique métier ne
Item item = dbRepository.GetItem(itemId);
if (!item.itemDetails.IsLoaded)
item.itemDetails.Load()
Ou devrait la classe référentiel ont différents explicites fonctions qui chargent des relations étrangères différentes, donc retour Article de relations avides-chargées?
Merci beaucoup!
Edit: Exemple - http://www.asp.net/learn/mvc/tutorial-29-cs.aspx
public Contact GetContact(int id)
Cette fonction retourne un type d'entité Contact
. Cependant, dépend des besoins de logique métier, on peut vouloir Load()
ou Include()
différentes relations extérieures de l'entité Contact
. Est-ce que cette exigence signifie que nous devons plus surchargés GetContact()
méthodes avec des paramètres indiquant les relations à charger, ou simplement faire la Load()
dans la logique métier?
Merci pour votre réponse. Où devrait avoir lieu ce genre de logique? Si nous faisons la mise en correspondance dans la couche modèle (je suppose MVC), alors nous ne sommes pas Muddling Modèle classe avec le modèle Présentation, de sorte que la couche d'accès aux données a besoin de connaître le modèle de présentation? –
Le mappage entre les types de référentiel et les types de modèle de présentation (et vice versa) doit figurer dans le contrôleur. –
Cela signifie que les requêtes linq vont également être dans le contrôleur? (Désolé je suis assez nouveau à cela) –