我为数据库表创建实体类。当我从数据库中读取多个记录时,我使用Dapper创建对象列表。在我的课程中,我有两个非静态方法,InsertStatement和UpdateStatement。它们都返回Dapper Execute将当前实例插入或更新回数据库所需的SQL字符串。我想添加一个新的静态方法,该方法将为列表中对象的所有实例返回一个SQL Insert语句。换句话说,我想在实体类中创建一个静态方法,该方法可以遍历列表中对象的所有实例并访问每个实例的所有属性。
有什么想法吗?
最终,返回的SQL语句类似于
INSERT INTO myTable (property1, property2)
VALUES ("text1", 5), ("moreText", 27), ("etc.",50), ("etc.",65), ("etc.",1)
答案 0 :(得分:1)
using System;
using System.Collections.Generic;
using System.Linq
public class Banana
{
public int id { get; set; }
public string name { get; set; }
public static string GetSql(List<Banana> bananas)
{
string _operator = "INSERT INTO bananaTable (id, name) VALUES ";
string _val = null;
foreach (var item in bananas)
{
_val += $" ({item.id}, '{item.name})'";
if (item != bananas.Last())
_val += ", ";
}
return _operator + _val + "; ";
}
}