Entity Framework 根本不插入数据
Entity Framework not inserting data at all
我第一次遇到这个问题,当使用 base.Seed(context) 或使用 context.SaveChanges() 时,EF 不会将任何数据插入数据库。
这是我的设置:
上下文
public ApplicationDbContext() : base("DbName")
{
Database.SetInitializer(new NameOfSeeder());
}
播种机
public class NameOfSeeder : DropCreateDatabaseAlways<ApplicationDbContext>
{
protected override void Seed(ApplicationDbContext ctx)
{
Language newLanguage = new Language("Nederlands");
ctx.Languages.AddOrUpdate(l => l.Name, newLanguage);
// using this won't work either
ctx.Languages.Add(newLanguage);
base.Seed(ctx); // => this should work, never had any issue with this untill now ...
//ctx.SaveChanges(); // this does not work either
}
}
我也尝试将此添加到我的第一个操作中(索引 => HomeController)
using (ApplicationDbContext ctx = new ApplicationDbContext())
{
//if (ctx.Languages.Any()) { }
Language newLanguage = new Language("Nederlands");
ctx.Languages.Add(newLanguage);
ctx.SaveChanges();
}
Web.config
<add name="DbName" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\DbName.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
这真的是我第一次遇到这种情况,不知道是什么原因造成的...非常感谢任何帮助!
编辑:
我正在使用 Azure AD 身份验证
还有 EF 迁移(今天添加了迁移,但没有改变
任何东西)
使用Database.SetInitializer(新
DropCreateDatabaseAlways());也没用
好的,所以我没想到 EF NOT 在这种情况下会抛出异常,但我确实将 Seed() 方法包装在 Try Catch 中并猜测是什么:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
是的,我解决了验证错误,一切正常。
亲切的问候。
我第一次遇到这个问题,当使用 base.Seed(context) 或使用 context.SaveChanges() 时,EF 不会将任何数据插入数据库。
这是我的设置:
上下文
public ApplicationDbContext() : base("DbName")
{
Database.SetInitializer(new NameOfSeeder());
}
播种机
public class NameOfSeeder : DropCreateDatabaseAlways<ApplicationDbContext>
{
protected override void Seed(ApplicationDbContext ctx)
{
Language newLanguage = new Language("Nederlands");
ctx.Languages.AddOrUpdate(l => l.Name, newLanguage);
// using this won't work either
ctx.Languages.Add(newLanguage);
base.Seed(ctx); // => this should work, never had any issue with this untill now ...
//ctx.SaveChanges(); // this does not work either
}
}
我也尝试将此添加到我的第一个操作中(索引 => HomeController)
using (ApplicationDbContext ctx = new ApplicationDbContext())
{
//if (ctx.Languages.Any()) { }
Language newLanguage = new Language("Nederlands");
ctx.Languages.Add(newLanguage);
ctx.SaveChanges();
}
Web.config
<add name="DbName" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\DbName.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
这真的是我第一次遇到这种情况,不知道是什么原因造成的...非常感谢任何帮助!
编辑:
我正在使用 Azure AD 身份验证
还有 EF 迁移(今天添加了迁移,但没有改变 任何东西)
使用Database.SetInitializer(新 DropCreateDatabaseAlways());也没用
好的,所以我没想到 EF NOT 在这种情况下会抛出异常,但我确实将 Seed() 方法包装在 Try Catch 中并猜测是什么:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
是的,我解决了验证错误,一切正常。 亲切的问候。