导致EDMX文件移动到新项目:System.Data.MetadataException:无法加载指定的元数据资源

Dan*_*ani 6 connection-string entity-framework-4 asp.net-mvc-2

我有一个ASP.NET MVC 2项目.我在包含模型的类库项目上创建了edmx文件.

现在我已经创建了另一个名为shared的类库,并在那里移动了edmx文件.解决了一些问题,一切都编译好了,但是在运行时找不到连接字符串资源.

我已将Web.Config的ConnectionString部分复制到主文件,旧类库app.config文件和新类库app.config文件中.

仍然会收到此错误:

System.Data.MetadataException:无法加载指定的元数据资源.

第75行:public myProjdb():base("name = myProjdb","MyProjdb")

在MyProj.Designer.cs文件中.

任何想法如何解决这个问题?

是否有更好的方法来存储连接字符串数据?

Jef*_*ata 12

如果使用包含程序集名称的连接字符串,则应该能够在其他项目中使用相同的模型.在web.config *中的连接字符串中,尝试更改连接字符串中的

metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=... 
Run Code Online (Sandbox Code Playgroud)

这样的事情:

metadata=res://ClassLibrary1/Model1.csdl|res://ClassLibrary1/Model1.ssdl|res://ClassLibrary1/Model1.msl;provider=System.Data.SqlClient;provider connection string=...
Run Code Online (Sandbox Code Playgroud)

  • 如果模型位于子文件夹中,则文件夹名称应位于连接字符串中,如下所示:`//ClassLibrary1/Subfolder.Model1.csdl | ...`.我认为这是因为该文件夹成为模型所在的命名空间的一部分. (6认同)
  • 你复制了edmx文件,还是移动它?它是在项目的根目录中,还是在子文件夹中? (2认同)