我正在尝试使用外部资源(CSV文件)构建与Azure网站关联的Azure SQL数据库。
我能够使用EF Migration Seed method and a CSV file在开发环境中为数据库建立种子,如下所述在Migration.cs文件中。注意:Visual Studio中项目中的CSV文件设置为“对嵌入式资源构建操作”。
public void SeedData(WebApp.Models.ApplicationDbContext Context)
{
Assembly assembly = Assembly.GetExecutingAssembly();
string resourceName = "WebApp.SeedData.Name.csv";
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
CsvReader csvReader = new CsvReader(reader);
csvReader.Configuration.WillThrowOnMissingField = false;
var records = csvReader.GetRecords<Products>().ToArray();
foreach (Product record in records)
{
Context.Products.AddOrUpdate(record);
}
}
}
Context.SaveChanges();
}
当我从VS2013部署到Azure并选择执行代码优先迁移时,数据库无法获取种子。
更新 这现在正在运作。在我完成一个干净的构建之后,然后构建了项目,然后选择了Execute Code First Migration来部署该网站。