创建一个静态方法来访问实例列表的属性

时间:2019-04-12 00:10:49

标签: c# sql dapper static-methods

我为数据库表创建实体类。当我从数据库中读取多个记录时,我使用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)

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 + "; ";
    }
}