是否有办法从SQL表或查询生成对象初始化项?

本文关键字:对象 初始化 查询 SQL 是否 | 更新日期: 2023-09-27 18:17:59

给定一个像这样的People表:

+----+------+
| ID | Name |
+----+------+
|  1 | Foo  |
|  2 | Bar  |
|  3 | Baz  |
+----+------+
我想生成这样的c#代码:
List<People> foo = new List<People> 
{
    new People{ID = 1, Name = "Foo" },
    new People{ID = 2, Name = "Bar" },
    new People{ID = 3, Name = "Baz" }
};

目的是使用数据库轻松创建大型数据集,以便使用模拟对象进行单元测试。

为了澄清,我正在使用实体框架,我正在使用EntityFramework。使用Moq进行测试,生成用于测试的模拟对象。

请注意,我不是试图从数据库中获取数据集合的实例,而是试图生成一个初始化器(如上所述),可以用作单元测试的基础,而无需连接到数据库。换句话说,无论你提出什么工具/过程/代码的输出都应该是表示对象或集合初始化项的c#代码。

是否有办法从SQL表或查询生成对象初始化项?

看起来对象导出器(从这个答案来看)在这方面有很长的路要走。这需要编写一次性代码来拉数据以便"导出"它,但它离我正在寻找的解决方案并不太远。

我使用entityframework为您描述:

var ListOfObjects = _YourContext.People.Where(q => q.id > 0).ToList();
ListOfObjects中的

是您在People表中插入的所有People,例如您在问题中提到的foo list。

希望你使用过实体框架