EF 5.0定位多个数据库

时间:2013-06-03 21:34:59

标签: sql oracle orm entity-framework-5

我们开始在MVC 4中使用EF 5.0,一切都运行良好。我们的应用程序是DB可以是动态的产品(SQL,Oracle,AS400等)。所以我们创建了实体并根据Connection String将其映射到DB。如果ConnectionString说Oracle,我们将dbcontext连接设置为Oracle。

现在的问题是SQL和Oracle中有一个表具有相同的数据类型编号(18,0),如果Entity数据类型设置为Double,则它适用于Oracle但不适用于SQL。

因为数字(18,0)的Oracle to Entity数据类型映射是double,但EF5.0中的SQL数字(18,0)是十进制

有没有一种方法可以使用相同的实体映射来定位动态数据库(SQL或Oracle或AS400)

1 个答案:

答案 0 :(得分:0)

我有同样的问题,直到现在我才发现这个:

http://mosesofegypt.net/post/Multiple-database-support-with-Entity-Framework.aspx

我正在使用“数据库优先”。也许“Code first”会解决它,但是在程序启动后第一次数据库连接需要40秒,我认为所有的SSDL定义都是在40秒内从数据库中动态检索的(每次启动程序!)。这对我来说是不可理解的,所以我决定使用“数据库优先”,其中所有的schemainformation都预先存储在edmx文件(SSDL-part)中。但这不是数据库独立,正如我刚才所了解的那样。