.NET 4: Comment configurer le file EDMX dans un autre assembly dans Web.Config

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=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\aspnetdb.mdf;integrated security=True;user instance=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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.