我需要使用实体模型优先的方式将系统连接到Oracle。 我有一个名为“Entity1”的实体模型。“MyBool”是一个布尔属性。
我成功地从模型生成了sql脚本,并在Oracle数据库上运行它。
然后我有这段代码:
这段代码会抛出以下异常:
“指定的架构无效。错误:Model1.msl(8,12) : error 2019: 指定的成员映射无效。在类型 'Model1.Entity1' 的成员 'MyBool' 的 'Edm.Boolean[Nullable=False,DefaultValue=]' 类型与类型 'Model1.Store.Entity1' 中成员 'MyBool' 的 'OracleEFProvider.number[Nullable=False,DefaultValue=,Precision=1,Scale=0]' 不兼容。”
我阅读了很多线程,许多人说要添加:
在配置文件中(在我的情况下是控制台应用程序的app.config文件),但这并没有改变任何东西。事实上,我可以在此参数上设置任何值,错误仍然是完全相同的。看起来这个参数没有被读取。
然后有些人说:将Oracle.DataAccess DLL添加到项目中。我做到了,结果还是一样。
我知道有很多关于这个主题的帖子,但是它们都没有帮助我,而且我不知道还能做什么。 只是提醒一下,我的真实应用程序模型已经在Sql Server上投入生产。
![enter image description here](https://istack.dev59.com/dAvfD.webp)
然后我有这段代码:
static void Main(string[] args)
{
Model1Container context = new Model1Container();
Entity1 entity = context.Entity1.FirstOrDefault();
}
这段代码会抛出以下异常:
“指定的架构无效。错误:Model1.msl(8,12) : error 2019: 指定的成员映射无效。在类型 'Model1.Entity1' 的成员 'MyBool' 的 'Edm.Boolean[Nullable=False,DefaultValue=]' 类型与类型 'Model1.Store.Entity1' 中成员 'MyBool' 的 'OracleEFProvider.number[Nullable=False,DefaultValue=,Precision=1,Scale=0]' 不兼容。”
我阅读了很多线程,许多人说要添加:
<oracle.dataaccess.client>
<settings>
<add name="bool" value="edmmapping number(1,0)" />
</settings>
</oracle.dataaccess.client>
在配置文件中(在我的情况下是控制台应用程序的app.config文件),但这并没有改变任何东西。事实上,我可以在此参数上设置任何值,错误仍然是完全相同的。看起来这个参数没有被读取。
然后有些人说:将Oracle.DataAccess DLL添加到项目中。我做到了,结果还是一样。
我知道有很多关于这个主题的帖子,但是它们都没有帮助我,而且我不知道还能做什么。 只是提醒一下,我的真实应用程序模型已经在Sql Server上投入生产。