0

我正在为我的 MVC4 应用程序编写一组单元测试。我想创建一个测试数据库,在每次测试之前将其删除并重新填充。为此,我需要一个可以执行以下操作的种子函数:

var project = new Project() {Name = "Project One", Description = "Watermelons make you high!"}
_context.Projects.Add(project);

var projectTwo = new Project() {Name = "Project Two", Description = "Insert your joke here"}
_context.Projects.Add(project);

等等,对于我要测试的所有对象。越多越好。

而且我很懒。我不想自己用 C# 编写所有这些。但我可以使用我开发的网络应用程序来快速创建大量测试数据。

现在的问题是如何将数据库(sql server 2012)中的数据转换为 C# 语句,如上面的示例?

我可以将数据库导出为 sql 语句并为每个脚本每次运行它。但是每当我的模型发生变化(比如新字段)时,我都需要重新创建 sql。此外,有时能够访问已放入数据库中的对象会很好,而 sql 脚本不允许这样做。

另一种选择是编写一些正则表达式来将 sql-script 转换为对象。不知道那是多少工作。我可能最终会这样做。

那么,是否有任何工具可以将数据库中的数据转换为 C# 对象?

4

1 回答 1

1

为什么不创建一个 for 循环来运行 100 次。并在那里创建一个新项目并将其添加到 _context 中,例如:

for(int i = 0; i < 100; i++)
{
    _context.Projects.Add(new Project() {Name = string.format("Name{0}", i), Description = string.format("Description{0}", i) });
}

就像你在那次聊天中建议的那样,用随机词的字典代替名称和描述,每次都得到随机数据。

于 2012-08-27T02:46:30.923 回答