我在项目中安装了 Faker端口C#(https://github.com/oriches/faker-cs),但项目网站没有提供使用示例。
有人可以发布一些基本模拟数据生成的例子吗?
答案 0 :(得分:3)
在这个例子中,我使用的是一个使用MVC4,EF Code First和Automatic Migrations的项目。因此,如果您使用相同的文件,则Migrations\Configuration.cs
文件应如下所示:
internal sealed class Configuration : DbMigrationsConfiguration<MyProject.Models.MyProjectContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
...
对于单个元素,这个例子很简单:
protected override void Seed(MyProject.Models.MyProjectContext context)
{
context.Customers.AddOrUpdate(
c => c.Name,
new Customer { Name = Faker.Name.FullName() }
);
context.SaveChanges();
...
对于定义数量的元素,我喜欢使用lambda表达式的想法,比如Factory Girl(对于Ruby on Rails)。在我提出的另一个问题(DbMigrations in .NET w/ Code First: How to Repeat Instructions with Expressions)中,答案使用Enumberable.Range()
来指定元素数量:
protected override void Seed(MyProject.Models.MyProjectContext context)
{
context.Companies.AddOrUpdate(
p => p.Name,
Enumerable.Range(1, 10).
Select( x => new Company { Name = Faker.Company.Name() }).ToArray()
);
context.SaveChanges();
}
...
答案 1 :(得分:1)
资源稀缺,但this article似乎是人们所期望的。
还尝试使用程序集/对象浏览器查看可用资源(例如,库中包含Classes
,Methods
等等。此外,该库包含NUnit
个测试,因此look at the tests'代码也可能有用。
由于Faker.NET是名为ffaker的Ruby库的一个端口,人们也可能暗示代码的意图相似,因此也可以使用ffaker的单元测试作为小参考。