我正在从一堆sql脚本初始化我的数据库。然后我想在添加更多数据时查询数据,以便外键关系匹配。然而在我的例子中,即使数据存在,“绘画”变量也总是为空。是否可以查询此种子方法中的数据?我是否必须提交数据?
class ArtConvergenceInitializer : DropCreateDatabaseIfModelChanges<ArtConvergence>
{
protected override void Seed(ArtConvergence context)
{
var seedfilePath = System.Configuration.ConfigurationManager.AppSettings["PathToInitializationScript"].ToString();
foreach(var file in System.IO.Directory.EnumerateFiles(seedfilePath,"*.sql"))
{
var sqlCommand = System.IO.File.ReadAllText(file);
context.Database.ExecuteSqlCommand(sqlCommand);
context.SaveChanges();
}
var painting = context.Mediums.Where(x => x.MediumType == "Painting" && x.SpecificMedium == null).FirstOrDefault();
var oilOnCanvas = context.Mediums.Where(x => x.MediumType == "Painting" && x.SpecificMedium == "oil on canvas").FirstOrDefault();
}
答案 0 :(得分:0)
一旦使用直接SQL脚本,编写SQL脚本应该不会太难,这将使用现有外键正确插入数据。我做了很多次。将初始化逻辑保持在一起。