有什么方法可以从 SQL Table 或查询生成对象初始值设定项?

Is there any way to generate an object initializer from a SQL Table or Query?

给定一个这样的table:

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

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

为澄清起见,我使用 Entity Framework,并使用 EntityFramework.Testing with Moq 生成用于测试的模拟对象。

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

我正在使用entityframework为您描述:

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

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

希望您曾与 entity framework 合作过。

看起来 Object Exporter (from this answer) 对此大有帮助。它需要编写一次性代码来提取数据以便 "export" 它,但这与我正在寻找的解决方案相距不远。