gpt4 book ai didi

c# - 不存在从 DbType UInt64 到已知 SqlDbType 的映射。 Dapper C#

转载 作者:行者123 更新时间:2023-12-03 23:20:21 25 4
gpt4 key购买 nike

我在我们的 SQL Server 2016 数据库中有一个表字段( TotalPrice ) numeric(20, 3)数据类型。
我用过 ulong type 作为我的 C# 属性类型。

public ulong TotalPrice { get; set; }
当我想在我的表中插入一条记录时,发生了以下异常。

No mapping exists from DbType UInt64 to a known SqlDbType


我的 C# 代码插入记录:
const string queryInsertInvoice = @"
INSERT INTO Invoice (CustomerId, Number, TotalPrice, LatestStatusDateTime)
VALUES (@CustomerId, @Number, @TotalPrice, @LatestStatusDateTime)
SELECT SCOPE_IDENTITY();";

var invoiceId = await dbConnection.QueryFirstOrDefaultAsync<int>(queryInsertInvoice, invoice);
我如何使用 Dapper 2.0.53 处理这种情况?

最佳答案

这是故意的。 SQL Server 没有无符号整数,因此它试图阻止您将数据存储为与您期望的不同的东西 - 环绕对等式运算很好,但如果我们允许的话,不等式运算对于某些值的行为会非常出乎意料。
换句话说:使用 long ,不是 ulong .

编辑:我可以在“Dapper 应该允许 ulong 用于前 63 位 - 将其强制为 long - 如果设置 MSB 并抛出和异常( OverflowException ?)”上出售。这只是今天没有实现。

关于c# - 不存在从 DbType UInt64 到已知 SqlDbType 的映射。 Dapper C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63525978/

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