gpt4 book ai didi

c# - 如何将 Oracle 数据库 NUMBER 映射到 .NET Core 中的 c# bool 类型?

转载 作者:搜寻专家 更新时间:2023-10-30 20:47:40 26 4
gpt4 key购买 nike

我有一个包含 NUMBER 类型列的 Oracle 数据库表。由于遗留原因,此列表示 bool 值,因此值 0 表示 false,值 -1 表示 true。

我需要将此表映射到 C# 类,从而将此列映射到具有指定映射值的 bool 属性。我在 .NET Core 应用程序(控制台和 asp.net)中使用 linq2db 作为 ORM。有没有办法告诉 Oracle Managed Client (Oracle.ManagedDataAccess.Core) 自动为我从我的代码执行的所有数据库查询执行此映射?

最佳答案

如果您使用 Fluent API 配置模型,从 EF Core 2.1 开始,您可以使用 Value Conversions .

目前没有内置的 NumberToBool 转换器,但可以这样写:

var converter = new ValueConverter<bool, int>(
v => v ? -1 : 0,
v => (v == -1));

entity.Property(e => e.IsNew)
.HasColumnName("ISNEW")
.HasConversion(converter);

关于c# - 如何将 Oracle 数据库 NUMBER 映射到 .NET Core 中的 c# bool 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53958372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com