【发布时间】:2017-01-11 14:26:32
【问题描述】:
问题:
有没有一种巧妙的方法可以动态地向对象添加参数并将它们插入到 SQL DB 中?
最好使用 Dapper
我正在编写一个 WPF 应用程序,其中(除其他外)我正在收集问卷数据。我正在使用 Dapper 将 c# 对象映射到 SQL 语句。
我的问题是我不想将所有列名硬编码为对象属性,因为我有很多!
所以我想使用 Dapper 的 DynamicParameters 来动态生成 Dapper 可以通过使用 Dapper.Contrib Insert 方法插入到数据库中的对象。
我做了一个这样的抽象类:
public abstract class IDbRecord : DynamicParameters
{
[Key]
public string H4Id { get; set; }
}
并使用DynamicParameters.Add 方法在另一个方法中添加参数。
当我的参数被添加到我的IDbRecord 派生对象时,我尝试插入它。
这个结果是Insert 方法试图插入DynamicParameters 的公共属性而不是私有parameters 字典的内容。查看 Dapper.Contrib 的自述文件时,这是有道理的。我只是希望当对象派生自DynamicParameters 时,他们已经实现了Insert() 来获取parameters 字典。
【问题讨论】:
-
您尝试过使用
Dapper.Contrib或Dapper.Rainbow吗? -
@Kiquenet,看看标题;)我试图用
Dapper.Contrib来做这件事。我找到了解决方法。感谢您的关注。