首页 > 解决方案 > 实体框架 - 将布尔值映射到 VARCHAR2(1)

问题描述

我正在使用 Entity Framework 6 和 ASP.NET Core 2.1。

我在 SO 和其他地方看到了几个示例,用于将数据库中的 NUMBER(1) 列映射到实体框架中的布尔值。他们通常涉及这样的事情

<oracle.manageddataaccess.client>
  <version number="*">
    <edmMappings>
      <edmMapping dataType="number">
        <add name="bool" precision="1"/>
      </edmMapping>
    </edmMappings>
  </version>
</oracle.manageddataaccess.client>

被添加到 web.config 中。

所有示例都用于将数字 DB 值映射到布尔值。我们使用的数据库在每一列中都有一个 ACTIVE_IND 列,即 VARCHAR2(1)。我们将其用作“1” = true,“0” = false。

我尝试的每个值<edmMapping dataType="***">,我都会收到一个错误,例如DataType 'varchar2' is invalid. 我试过 varchar、varchar2、string 等。

我的问题 - 有没有办法映射所有表,以便在我的 .NET 代码中,属性是布尔值,但在数据库中,它是 VARCHAR2?

标签: .netoracleentity-framework

解决方案


在 EF 6 中没有一流的方法可以做到这一点。

EF Core 通过Value Conversions支持这一点,Oracle 已经发布了ODP.NET Core。但是,EF Core 支持尚未发布。


推荐阅读