3

这篇文章旨在作为(非最佳)解决方案,适用于必须为同样的问题而苦苦挣扎的每个人,并且在网络 atm 中几乎没有答案......(当然,这篇文章将包含来自其他来源的信息)

我们在项目(VS2010/EntityFramework/WCF RIA Services/Oracle ODP.NET)中遇到了自定义数据类型映射(数字)的问题,我们能够通过以下方式解决:

我们不得不使用以下自定义 oracle 编号映射信息(因为遗留数据库)

</connectionStrings>
  <oracle.dataaccess.client>
    <settings>
      <add name="int16" value="edmmapping number(4,0)" />
      <add name="int32" value="edmmapping number(9,0)" />
      <add name="int64" value="edmmapping number(17,0)" />
    </settings>
  </oracle.dataaccess.client>

我们将此信息与 EDMX 文件一起放在项目中的 App.Config 中,现在我们可以使用自定义映射创建我们的 EDMX 文件

1)有一个问题,当您重新启动VS2010时,可能会发生在项目编译时由于错误2019而无法编译,此错误当然与我们的自定义映射及其“VS2010错误???”有关 也许但一种解决方案是打开 VS2010 about 窗口然后关闭它然后编译......但更好的解决方案可能是将我们添加到 App.Config 文件中的相同信息添加到 devenv.exe.config 文件中。 ..

现在我们可以编译 EDMX 项目和使用我们的 EDM 的 My.Service.Web (.NET) 项目

2) 还有另一个问题... WCF RIA Service My.Service (SL5) 项目不知道 App.Config 设置,所以当我们尝试编译它时,我们也会收到错误 2019... 添加映射Web.Config 文件中的信息没有帮助,但是当我们将其添加到 machine.config 文件中时,我们终于可以编译...

摘要:将映射信息添加到 App.Config(您的 edmx 文件所在的位置) Machine.Config (C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config) Web.Config(在您的 Web 项目中,不确定是否需要,因为我们将它添加到 Machine.config)

问题:没有比将其添加到 Machine.Config 更好的解决方案吗?我真的希望有人有一个更好的,因为它可能会限制其他项目的开发......

希望这会有所帮助,并希望有更好的(重新)解决方案

谢谢和欢呼

版本:VS2010 SP1 EntityFramework 4.1 WCF RIA 服务 1 SP2 Oracle 11g (ODAC/ODP.NET 11.2.0.3.0)

4

0 回答 0