J'ai un problème avec la configuration d'un file EDMX qui réside dans un autre assemblage que par projet Web. Mon projet ressemble un peu à ceci:
Project 1 --> Database.edmx --> App.Config Project 2 --> Ton's of .cs and .aspx files. --> Web.Config with the proper connection ssortingng.
Dans Visual Studio, la mise à jour du file .EDMX à l'intérieur du Projet 1 se déroule sans problème et, alors que j'avais le file .EDMX dans le projet 2, l'application s'est exécutée comme prévu.
Quelqu'un a une idée sur la façon de configurer le file .EDMX dans le projet 1 pour pointer sur la string de connection de Web.Config? (ou dois-je utiliser Project1.dll.config pour configurer le projet 1?)
Vous devez modifier le *
dans la string de connection pour le nom de l'assembly où se trouvent les files .edmx:
<add name="Entities" connectionSsortingng="metadata=res://*/Models.EF.Model.csdl|res://*/Models.EF.Model.ssdl|res://*/Models.EF.Model.msl;provider=System.Data.SqlClient;provider connection ... ;" providerName="System.Data.EntityClient" />
pour
<add name="Entities" connectionSsortingng="metadata=res://Project2/Models.EF.Model.csdl|res://Project2/Models.EF.Model.ssdl|res://Project2/Models.EF.Model.msl;provider=System.Data.SqlClient;provider connection ... ;" providerName="System.Data.EntityClient" />
Comme il s'est avéré, il y avait 2 problèmes. Un a été résolu en remplaçant le * dans la string de connection.
Le deuxième problème était celui décrit ici: http://blogs.teamb.com/craigstuntz/2010/08/13/38628/
Cela avait à voir avec le path .csdl, .ssdl et les files .msl avaient comme ressources à l'intérieur de l'assembly Project1
Quoi qu'il en soit, les choses fonctionnent correctement maintenant
Il est plus facile de prendre la string de connection à partir de Web.Config et de les copyr dans App.Config et de pointer la string de connection d'EDMX vers les mêmes informations de database. par exemple
<connectionSsortingngs> <add name="ApplicationServices" connectionSsortingng="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> <add name="aspnetdbEntities" connectionSsortingng="metadata=res://*/Data.PSBData.csdl|res://*/Data.PSBData.ssdl|res://*/Data.PSBData.msl;provider=System.Data.SqlClient;provider connection ssortingng="data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\aspnetdb.mdf;integrated security=True;user instance=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /> </connectionSsortingngs>
Vous devez également vérifier si les namespaces sont corrects si vous avez déplacé Database.edmx du Projet 2 vers le Projet 1, que vous pouvez vérifier en ouvrant Database.edmx et le code goto derrière.