将数据从数据库导出到C#语句中

时间:2012-08-27 01:42:41

标签: c# database entity-framework-5

我正在为我的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。有时候,当它们被放入DB中时,能够访问这些对象会很好,而sql脚本也不允许这样做。

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

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

1 个答案:

答案 0 :(得分: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) });
}

就像你在聊天中建议的那样,每次都要用一个随机的单词代替名称和描述来获取随机数据。