【发布时间】:2018-04-16 10:11:50
【问题描述】:
我正在考虑创建一个对象列表,用于存储数据库中的行记录。但是,数据库的列可能是未知的,这意味着我不知道我的对象属性及其类型。关于我如何实现这一目标的任何想法。请找到以下代码
public class TTSlogobj
{
public string Name { get; set; }
public int Id { get; set; }
public int Age { get; set; }
public string address { get; set; }
}
using (SqlDataReader newReader = command.ExecuteReader())
{
while (newReader.Read())
{
queryResult.Add(new TTSlogobj() {
Name = newReader["name"].ToString(),
Id = Convert.ToInt16(newReader["Id"]),
Age = Convert.ToInt16(newReader["Age"]),
address = newReader["address"].ToString(),
});
}
}
从代码中可以看出,TTSlogobj 具有属性,即数据库中的列名,我如何在不知道数据库中的列及其类型的情况下编写 TTSlogobj。我浏览了 dapper 的文档,我意识到您仍然必须定义类属性,您希望在其中将列从数据库映射到其对象。我实际上正在寻找一种工具来为您创建类属性,就像在实体框架中一样。但比实体框架更简单的工具
【问题讨论】:
-
你为什么要这样做?
-
如果您不知道您希望从数据库中读取什么,您希望如何使用它?我敢肯定会有一些方法可以让你阅读/反映这些信息,但我不确定你会如何实际使用它,除非你使用这些信息来填充一些具体的类。
-
@d219 我完全不同意 - 这是这样想要做的常见事情,我们编写了一个库来做只是这个,它有超过 200 万次下载。
-
公平。图书馆的名字是什么?如果我发现需要使用完全“抽象”的类,我会看看。