Как можно заставить Effort.EF6
выбросить System.InvalidOperationException
, когда изменилась модель поддержки?
Следующее выполняется без проблем, хотя я бы ожидал исключения:
var connection = DbConnectionFactory.CreateTransient();
using (var context = new SchoolDbContext(connection))
{
// context.Database.Connection.ConnectionString =
// "instanceid=26f22cef-6539-4c52-99b1-79baa8d67bfa"
var grade = new Grade()
{
GradeName = "Mathematics"
};
context.Grades.Add(grade);
context.SaveChanges();
}
This ...
using (var context = new SchoolDbContext())
{
// context.Database.Connection.ConnectionString =
// "Data Source=(localdb)\mssqllocaldb;Initial Catalog=ESchoolDbContext;Integrated Security=True;MultipleActiveResultSets=True"
var grade = new Grade()
{
GradeName = "Mathematics"
};
context.Grades.Add(grade);
context.SaveChanges();
}
... правильно выбрасывает ...
System.InvalidOperationException
Модель, поддерживающая контекст 'SchoolDbContext', имеетизменено с момента создания базы данных. Рассмотрите возможность использования Code First Migrations для обновления базы данных ...
Вот как выглядит мой контекст:
public class SchoolDbContext : DbContext
{
public SchoolDbContext() : base()
{
}
public SchoolDbContext(DbConnection connection) : base(connection, false)
{
}
public DbSet<Student> Students { get; set; }
public DbSet<Grade> Grades { get; set; }
}
И моя конфигурация:
internal sealed class Configuration : DbMigrationsConfiguration<SchoolDbContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
ContextKey = "SchoolDbContext";
}
protected override void Seed(SchoolDbContext context)
{
}
}
Вот как выглядит мой App.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</configSections>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
</configuration>