我正在尝试切换模型以使用DevArt dotConnect驱动程序。它实际上已经运行了,但在重新生成模型之后,它似乎已恢复为默认的.NET Oracle驱动程序。
我所做的是在记事本中打开.edmx
文件并更改:
<Schema Provider="Oracle.DataAccess.Client" ProviderManifestToken="11.2" ...>
要:
<Schema Provider="Devart.Data.Oracle" ProviderManifestToken="Ora11g" ...>
然而,当我尝试从数据库更新模型时,我得到了数百个类似于:
的错误错误18错误40:类型编号未使用命名空间限定 或别名。只有PrimitiveTypes可以不受限制地使用。
这些发生在如下行:
<Property Name="ROLEID" Type="number" Nullable="false" />
我相信dotConnect驱动程序要我使用.NET原语Decimal
而不是Oracle类型number
。但是,修复这些错误需要我更改数百行,而且下次更新模型时它会被删除。
我的问题:
内置VS2010设计器是否可以与DevArt dotConnect Oracle驱动程序一起使用?或者是生成使用DevArt设计器的正确语法的唯一方法吗?
答案 0 :(得分:0)
我很确定我已经找到了问题。
模型已映射到使用Oracle.DataAccess.Client
ADO.NET驱动程序而非dotConnect驱动程序的数据源。
我无法找到更改模型的基础数据库驱动程序的好方法,因此我删除了数据源并创建了一个具有相同名称的新数据源。这似乎解决了这个问题,现在数据类型在EDMX文件中正确显示。
我现在有很多其他问题,但我认为这与这个问题无关。