是否有办法从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#代码。
看起来对象导出器(从这个答案来看)在这方面有很长的路要走。这需要编写一次性代码来拉数据以便"导出"它,但它离我正在寻找的解决方案并不太远。
我使用entityframework为您描述:
var ListOfObjects = _YourContext.People.Where(q => q.id > 0).ToList();
ListOfObjects中的是您在People表中插入的所有People,例如您在问题中提到的foo list。
希望你使用过实体框架