Je cherche à mettre en œuvre l'entité framework version 4.3.1 dans mon projet existant qui ne suivez pas cette ef.La base de données est déjà développée et est actuellement utilisée pour appliquer ado.net.in cette affaire comment puis-je commencer par Travailler sur EF, est la base de données de la base de données, code en premier. P>
3 Réponses :
Étant donné que votre base de données existe déjà, le choix évident est la base de données d'abord. Si la base de données est conçue avec le bon sens, cela fonctionne (principalement) génial. P>
Je pense que la question est de savoir si vous souhaitez utiliser le concepteur EF pour visualiser votre base de données ou non. Puisque vous consultez EF 4.3.1 (en fait, vous devriez regarder EF5 non 4.3.1 - EF5 est la dernière version) Je suppose que vous ne vous souciez pas du concepteur. Dans ce cas, vous pouvez utiliser des outils électriques EF pour inverser l'ingénieur de votre base de données. Cela créera un ensemble de classes qui correspondront à votre base de données. Notez que, étant donné que la base de données a déjà été créée, EF ne sera pas en mesure de détecter les modifications apportées à vos classes (par opposition aux bases de données créées par le code lorsque des informations supplémentaires sont stockées dans la base de données et EF est capable de savoir si le modèle a changé). Assurez-vous de lire ce Publication du blog a > - Il contient beaucoup de détails que vous trouverez peut-être utile pour prendre la décision. Si vous vous souciez de pouvoir voir votre modèle dans le concepteur, vous pouvez simplement utiliser VS pour inverser ingénieur DB. Si vous utilisez VS2012, vous obtiendrez par défaut EF5 et DBContext. La différence d'utilisation d'un code d'abord sera que au lieu de construire les besoins du modèle EF en fonction de vos classes, le modèle est enregistré dans le fichier EDMX faisant partie de votre projet (et utilisé pour générer du code pour vous) P>
Même lorsqu'une base de données existe déjà, j'utilise toujours la première approche du code, cartographier les tables à l'aide d'annotations, car le domaine est bien davantage organisé que sur le fichier EDMX. S'il y a de nombreuses tables, Visual Edmx peut devenir vraiment inutile car la conception sera surpeuplée de données et de connexions sur la place.
en deux étapes, vous pouvez commencer par cette approche: p>
1) Créer Classe de modèle de domaine, Client CODE> par exemple, et mappez-le à votre table à l'aide des annotations de données: P> var _db = new MyApplicationContext();
var customer = _db.Customers.Where(c => c.CustomerId == 37).FirstOrDefault();
Merci à tous pour la solution géniale.J'ai besoin d'aller avec la base de données d'abord même si je suis intéressé à utiliser le code d'abord via le code ingénieur inverse en premier. Je n'ai pas essayé d'abord, mais pas de chance, il ne peut pas créer les classes ef et a échoué Peut-être que ma base de données n'était pas conçue très bien. D'autres raisons de l'échec?
Qu'entendez-vous par «ça n'a pas créé des cours EF»?
Par classes ef, je veux dire des classes de domaine pour les tables, le dossier de modèles.Je ne vois pas de peuplé après que je faisais le code ingénieur inverse. Je suivais ce lien msdn.microsoft.com/en-us/data/jj200620.aspx
N'utilisez pas d'ingénierie inverse, il créera les classes pour vous, essayez d'utiliser la méthode que j'ai présentée ci-dessus, créez les classes vous-même. Commencez par une seule entité et MEK ça marche, puis passez aux autres.
Merci Anderson.Je ferez comme vous l'avez suggéré.
N'oubliez pas base de données.setinitializer