gpt4 book ai didi

c# - 当表的列数多于类时使用 Dapper

转载 作者:行者123 更新时间:2023-12-04 09:41:08 25 4
gpt4 key购买 nike

在 Dapper 中,如何在插入过程中忽略表列?

我有一个具有属性 A、B、C 的类,并且有这些属性的列表。

假设类似

class DTO 
{
string A;
string B;
string C;
}

并且列表是类型
List myList = new List<DTO>()

因此,使用这样的一行 sql 将列表批量插入到我的表中
sql="INSERT INTO TABLE VALUES (@A,  @B, @C)";
conn.Execute(sql, myList)

当我的表也有 A、B、C 列时,它工作正常并插入我的所有数据。

但是当我的表有更多列时,例如A、B、C、D 我收到错误:列名或提供的值数量与表定义不匹配

我知道如何使用 Dapper Contrib 库忽略类属性,但反过来不行。

我怎样才能做到这一点?

谢谢。

最佳答案

您必须专门枚举您的列,如下所示:

sql="INSERT INTO TABLE (column1name, column2name, column3name) VALUES (@A,  @B, @C)";

或者,如果您的 DTO 包含主键,您可以使用以下属性装饰您的 DTO:
[Table("TableName")]
class DTO
{
[Key]
int id;
string A;
string B;
string C;
}

并使用 Insert()来自 Dapper.Contrib .
connection.Insert(dto);

关于c# - 当表的列数多于类时使用 Dapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62326123/

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