加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用Entity Framework将Boolean属性映射到Oracle

发布时间:2020-12-15 05:40:16 所属栏目:百科 来源:网络整理
导读:我需要先使用实体??模型将系统连接到oracle. 我有一个实体“Entity1”的模型.顾名思义,“MyBool”是一个布尔属性. 我成功地从模型生成了sql脚本并在oracle数据库上运行它. 然后我有这个代码: static void Main(string[] args){ Model1Container context = n
我需要先使用实体??模型将系统连接到oracle.
我有一个实体“Entity1”的模型.顾名思义,“MyBool”是一个布尔属性.

我成功地从模型生成了sql脚本并在oracle数据库上运行它.

然后我有这个代码:

static void Main(string[] args)
{
    Model1Container context = new Model1Container();
    Entity1 entity = context.Entity1.FirstOrDefault();
}

此代码抛出此异常:

Schema specified is not valid. Errors: Model1.msl(8,12) : error 2019:
Member Mapping specified is not valid. The type
‘Edm.Boolean[Nullable=False,DefaultValue=]’ of member ‘MyBool’ in type
‘Model1.Entity1’ is not compatible with
‘OracleEFProvider.number[Nullable=False,DefaultValue=,Precision=1,Scale=0]’
of member ‘MyBool’ in type ‘Model1.Store.Entity1’.

我读了很多帖子,很多人说要添加:

<oracle.dataaccess.client>
    <settings>
      <add name="bool" value="edmmapping number(1,0)" />
    </settings>
  </oracle.dataaccess.client>

在配置文件中(在我的情况下,它是一个控制台应用程序然后app.config).
但这并没有改变任何事情.实际上,我可以在此参数上设置任何值,并且错误将完全相同.看起来这个参数没有被读取.

然后有人说:将Oracle.DataAccess DLL添加到项目中.我做了什么,结果是一样的.

我知道关于这个话题有很多线索,但是他们中的任何一个都帮助了我,我不知道还能做什么.
请注意,我的实际应用程序模型已在Sql Server上生产.

解决方法

在做了一些研究之后,我发现将数据库编号(1)映射到.net bool类型的自定义映射完全没问题.缺点当然是2019映射错误(或模式验证错误).如果你想摆脱通常不会给解决方案带来任何问题的映射错误,那么构建就是在构建期间关闭模型验证,将“Validate On Build”设置为false.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读