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