【发布时间】:2019-12-03 16:14:57
【问题描述】:
我使用 EF Core 并想添加预定义数据。可以通过以下代码完成:
modelBuilder.Entity<UserPage>().HasData(new UserPage()
{
Name = "Homepage",
Editable = true,
Path = "path"
});
这部分代码验证是否存在具有确切数据的 UserPage 对象,如果不存在,则创建它
但我只想在Name = "Homepage" 的记录不存在时添加新记录,否则不存在。即使名称为“主页”的记录已经存在,上面的代码也会添加新记录,但例如Editable = false。我想验证一下,我试试:
if (UserPages.Where(p => p.Name.Equals("Homepage", StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault() == null)
{
modelBuilder.Entity<UserPage>().HasData(new UserPage()
{
Name = "Homepage",
Editable = true,
Path = "path"
});
}
但我得到一个错误:
在创建模型时尝试使用它。一种 DbContext 实例不能以任何方式在 OnModelCreating 中使用 使用正在创建的模型。
【问题讨论】:
标签: c# entity-framework entity-framework-core ef-core-2.0 seed