J'utilise MVC3, C # 4.0 et Entity Framework dans Visual Studio 2010. Je génère mes fichiers EDMX et conçu.cs à partir d'une base de données. Je crée ensuite des interfaces à partir des entités du fichier designer.cs dans le cadre de ma structure Nlayer.
Le code d'origine est p> qui devient alors p> Mon inquiétude est que lorsque la base de données change (et que je vais régénérer les fichiers EDMX, je perdrai toutes les définitions d'interface. P> Y a-t-il une meilleure façon d'atteindre le même résultat sans avoir à régénérer les interfaces. p> merci p> p> p>
3 Réponses :
Je pense que la création d'un événement sur la mise à jour du modèle afin que chaque fois que le modèle mette à jour, il ajoutera les définitions d'interface. P>
Une autre option consiste à créer une classe de proxy qui implémente une interface spécifique et hérite du modèle. P>
ef génère les classes avec le mot-clé code> partial code> de sorte que vous puissiez ajouter des fonctionnalités supplémentaires aux entités en créant un autre fichier et en placez les trucs spécifiques à l'interface.
public partial class DataEntrySummary : Mb.Interface.IDataEntrySummary { }
Nice, j'ai complètement numérisé sur le mot clé code> partiel code> et je n'ai même pas réalisé ...
Vous vous dirigez vers la bonne direction. Mais pour retenir les interfaces après chaque actualisation EDMX, vous devrez personnaliser les fichiers T4. P>
Vous pouvez consulter les fichiers T4 personnalisés de https://entitytityinterfacegenerator.codeplex.com/ Ils génèrent une interface pour chacune de votre classe afin que vous puissiez facilement vous moquer et les tester séparément. P>
Donc, chaque fois que vous ajoutez une nouvelle table ou champ, vous pouvez simplement exécuter leurs modèles T4 avec ceux fournis par Microsoft pour générer des types EF. P>
Cordialement. P>
Merci pour cela, malheureusement trop tard, car nous sommes maintenant déplacés au code en premier. Je vais certainement revoir cela à nouveau s'il y a un autre besoin.
Chose sûre. Merci d'avoir vérifié le projet. J'espère que cela pourrait aider les gens à aimer ceux qui devaient décider quelle technologie à utiliser. Le code de l'OMI est d'abord super uniquement pour de nouveaux projets. La base de données semble d'abord plus pratique. C'est pourquoi je construis le projet pour aider les personnes qui ne pouvaient pas se permettre de faire le code en premier.