vic*_*woo 8 database entity-framework export code-first
有时,样本数据很重要,但由于许多相关表格而无法生成.因此,在Entity Framework Code First中,我认为将它们插入DropCreateDatabaseIfModelChanges :: Seed()是一种优雅的方式.
但有没有办法将现有数据从数据库导出回字符串作为插入poco对象的C#/ VB语句?
如果它有效,我们可以使用它来优雅地备份数据,或者通过场景保存到多个.cs,根据需要切换它们以更好地进行测试等.
var students = new List<Student>
{
new Student { FirstMidName = "Carson", LastName = "Alexander", },
new Student { FirstMidName = "Meredith", LastName = "Alonso", },
new Student { FirstMidName = "Arturo", LastName = "Anand", },
// ...
};
students.ForEach(s => context.Students.Add(s));
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
正如@Luke 在他的评论中建议的那样。最好的方法是为种子数据生成 Json 文件。
在本文中,您可以找到从 SQL 查询生成 Json 的简单方法。
那么你所需要的就是通过 Newtonsoft.Json 阅读它们
例如
var countriesStream = new StreamReader(HostingEnvironment.MapPath("jsonFile.json"));
try
{
countriesList = JsonConvert.DeserializeObject<List<Country>>(countriesStream.ReadToEnd());
}
Run Code Online (Sandbox Code Playgroud)