Entity Framework вообще не вставляет данные
В первый раз, когда я сталкиваюсь с этим, при использовании 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
}
}
Я также попытался добавить это в свое первое действие (Index => 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 Migrations также (добавили Migrations сегодня, но это ничего не изменило)
использование Database.SetInitializer(new DropCreateDatabaseAlways()); тоже не работал
0 ответов
Хорошо, поэтому я не ожидал, что EF NOT выдаст исключение в таких случаях, но я обернул метод Seed() в Try Catch и угадаю, что:
Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
Так что да, я решил ошибки проверки и все работает как надо. С уважением.