0

我们开始使用带有 MVC 4 的 EF 5.0,一切都运行良好。我们的应用程序是数据库可以是动态的(SQL、Oracle、AS400 等)的产品。所以我们创建实体并根据连接字符串将其映射到数据库。如果 ConnectionString 显示 Oracle,我们将 dbcontext 连接设置为 Oracle。

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

因为 number(18,0) 的 Oracle 到 Entity 数据类型映射是双精度的,但 SQL number(18,0) 在 EF5.0 中是十进制的

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

4

1 回答 1

0

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

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

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

于 2013-11-06T13:56:47.983 回答