gpt4 book ai didi

c# - Dapper 在 ID 列上返回 SQL 转换错误

转载 作者:行者123 更新时间:2023-11-30 14:46:36 25 4
gpt4 key购买 nike

在我的数据库中,我有一个 nvarchar 类型的 ID 列,因为它包含唯一的用户名。在我的 .Net MVC 应用程序中,我使用 Dapper 来处理数据库交换。然后,我在我的模型上使用 DapperExtensions.Get(dynamic id) 通过 ID 字段获取特定条目。这在所有情况下都很好用,除了我收到以下错误的用户:

Conversion failed when converting the nvarchar value 'abcdefg' to data type int.'

我知道这是 ID 列,因为当它用于使用 Dapper 提取实体时,该值存在于我的用户模型的 ID 属性中。我最好的猜测是 Dapper 可能期望 dynamic id 参数是一个 int 并尝试这样使用它。我希望得到比我更了解它的人对此进行一些澄清。

我已确保我的数据库表对此字段使用 nvarchar 并将其标记为主键。

谢谢

最佳答案

确保使用 Dapper.Contrib.Extensions.Key 属性将正确的属性标记为 Key 属性。不要使用 System.ComponentModel.DataAnnotations.Key,因为它的行为可能不同。

但是,有时,这是行不通的。当不存在 Key 属性时,尝试将该字段放在类的顶部,DapperExtensions 可能会将其视为您的主键。

或者尝试使用 ExplicitKey?

关于c# - Dapper 在 ID 列上返回 SQL 转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48427389/

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