繁体   English   中英

在Entity Framework 6中使用不同的数据库

[英]Using different databases with Entity Framework 6

我在使用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文件,但找不到。

我是用正确的方法做的吗,还是有人知道是否有更好的方法?

我尝试使用MS SQL和Vista DB完全按照您的意图进行操作。 我遵循了该教程并遇到了同样的问题。

通过遵循本教程,您将为每个数据库有一个单独的ssdl文件。 确保已将其设置为复制到输出目录,然后相应地更新了连接字符串。

要将其设置为复制到输出文件夹,请在解决方案资源管理器中右键单击ssdl文件,然后将“复制到输出目录”更改为“如果更新则复制”。

然后将连接字符串的元数据部分更改为如下所示:

metadata=res://*/DataModel.csdl|c:\dev\program\bin\debug\DataModel.VistaDB.ssdl|res://*/DataModel.msl;

请注意,ssdl的路径是文件夹路径。 我听到的路径就是我使用的路径。 您将需要相应地进行更改

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM