实体框架-将布尔值映射到VARCHAR2(1)

时间:2018-12-17 17:13:43

标签: .net oracle entity-framework

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

我已经在SO和其他地方看到了几个将数据库中的NUMBER(1)列映射到Entity Framework中的布尔值的示例。 他们通常涉及到这样的东西

  INSERT INTO customer (
     customerid,
     companyname,
     contactname,
     contacttitle,
     address,
     city,
     region,
     postalcode,
     country
)
     SELECT phoneid,
            companyname,
            contactname,
            contacttitle,
            address,
            city,
            region,
            postalcode,
            country
     FROM person,
          customerorders;

被添加到web.config中。

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

我为<oracle.manageddataaccess.client> <version number="*"> <edmMappings> <edmMapping dataType="number"> <add name="bool" precision="1"/> </edmMapping> </edmMappings> </version> </oracle.manageddataaccess.client> 尝试的每个值,都会收到类似<edmMapping dataType="***">的错误。我已经尝试过varchar,varchar2,string等。

我的问题-有没有一种方法可以映射所有表,以便在我的.NET代码中,属性为boolean,但在数据库中为VARCHAR2?

1 个答案:

答案 0 :(得分:0)

EF 6中没有一流的方法。

EF Core通过Value Conversions支持此操作,Oracle已提供ODP.NET Core。但是,尚未提供EF Core支持。