Utilisation du modèle de référentiel avec Entity Framework (mvc storefront)
Quelqu'un peut-il donner un coup de main? J'ai regardé les vidéos pour le MVC de vitrine et d'avoir créé mon propre site web en utilisant ces techniques, c'est à dire DDD, modèle de Référentiel, mais je souhaite utiliser Entity Framework.
Dans les Interfaces elle renvoie IQueryable mais avec Entity Framework, dois-je retourner ObjectQuery à la place? - Je serai à l'aide de LINQ.
Également dans le storedfront exemple, il va quelque chose comme ceci: IQueryable<Catégorie> GetCategories();
Également dans le MVC magasin de la Catégorie classe a été construit classe d'entité (classe standard), mais avec Entity Framework, ces classes sont prêts à l'emploi dans le contexte de l'objet - ne sont-ils pas?
J'ai donc besoin de les construire?
Je suis un peu confus. Si quelqu'un a des exemple utile ou de code, il serait vraiment utile.
Comme je l'ai dit, j'ai regardé les vidéos de La MVC de vitrine à l'aide de linq2sql mais voudrais vraiment utiliser Entity Framework.
Des idées?
Grâce
Forge
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Permettez-moi de répondre à vos questions une à une:
Vos dépôts devrait retour IQueryable<T>, pas ObjectQuery. La raison en est que le but du modèle de référentiel est d'abstraire les détails de votre banque de données. Cela vous permet de faire des choses comme le substitut d'un simulacre de référentiel lorsque vous test unitaire vos contrôleurs. Si vous faites le référentiel de retour ObjectQuery, alors vous n'êtes pas abstraction de l'Entity Framework. Une autre façon de dire que ce sont les utilisateurs de votre référentiel ne doivent pas le savoir, autant que possible, qu'elle est le Cadre de l'Entité qui est en train de faire le mappage O/R.
Afin d'utiliser le plus que et moins que des symboles dans le texte du paragraphe dans le Débordement de Pile, vous devez vous échapper d'eux comme vous le feriez dans le HTML, c'est à dire:
Vous n'avez pas besoin de le faire dans un bloc de code; dans les blocs de code, il suffit de taper le supérieur/inférieur symbole.
Peut-être que si vous voyez le Gestionnaire de Contacts Tutoriel dans le http://www.asp.net/learn/mvc/#MVC_SampleApp site, ils utilisent le Modèle de Référentiel et Entity Framework.
J'ai commencé comme vous il y a quelques semaines, vous verrez, il est assez facile de travailler avec EF. Mon projet est de petite taille donc je suis en utilisant les entités générées par l'EF comme mes classes de modèles, et vous pouvez ajouter votre propre logique à l'aide d'une classe partielle.
Voici une méthode simple de l'un de mes dépôts, comme un exemple:
Remarque que je suis en utilisant IQueryable seulement à l'intérieur du dépôt, et de ne renvoyer que la liste des entités demandé. De cette façon, je peux contrôler que la requête de DB est toujours exécuté à l'intérieur de l'opération.
Une nouvelle MVC tutoriel de la série comprend un exemple d'un référentiel qui comprend des méthodes avec les paramètres qui vous permettent de spécifier des filtres, des tris, etc., sans revenir IQueryable:
http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application
Un joli générique de référentiel pour le cadre de l'entité (actif) :
http://www.codeproject.com/KB/database/ImplRepositoryPatternEF.aspx
aujourd'hui, j'utilise celui-ci comme Cadre d'Application (parfait référentiel inclus)
http://efmvc.codeplex.com/
pls donner un cri 😉
Je ne sais pas si c'est correct, mais je suis en utilisant L2E, la traduction d'objets générés à des objets du domaine à l'aide de AutoMapper outil 3ème partie.