有什么方法可以从 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" 它,但这与我正在寻找的解决方案相距不远。
给定一个这样的人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" 它,但这与我正在寻找的解决方案相距不远。