我在使用Entity Framework 6的mvc应用程序中使用不同的数据库时遇到问题。我们的客户端将使用他们自己的数据库,可能是MySQL,PostgreSQL或Oracle数据库。
我为MySQL和PostgreSQL创建了一个.edmx
文件,这些模型单独工作,但如果可能,我想只为所有数据库使用一个模型。数据库将具有相同的表和列。
所以想要做这样的事情:
using (var connection = new DbConnection())
{
string id = connection.Set<user>().First().Id;
}
DbConnection
必须是与正确数据库的连接(您可以看到在资源文件中使用哪个数据库)
我遇到了数据库第一种方法的以下问题:
我已阅读http://www.codeproject.com/Articles/82017/Preparing-an-Entity-Framework-model-for-multi-prov.aspx,当我按照说明操作时,我得到了
MetadataException:无法加载指定的元数据资源异常。
我已经尝试了所有内容来查找.ssdl
文件,但我无法找到它。
我是以正确的方式做的,还是有人知道是否有更好的方法来做到这一点?
答案 0 :(得分:0)
我尝试使用MS SQL和Vista DB完成您正在尝试的操作。我按照那个教程进行了同样的问题。
按照本教程,每个数据库都有一个单独的ssdl文件。确保已将其设置为复制到输出目录,然后相应地更新连接字符串。
要将其设置为复制到输出文件夹,请右键单击解决方案资源管理器中的ssdl文件,然后更改&#34;复制到OUtput目录&#34;到&#34;复制如果更新&#34;。
然后将连接字符串的元数据部分更改为以下内容:
metadata=res://*/DataModel.csdl|c:\dev\program\bin\debug\DataModel.VistaDB.ssdl|res://*/DataModel.msl;
请注意,ssdl的路径是文件夹路径。我听到的路径是我使用的路径。您需要相应地更改