EF检测迁移错误但数据库处于实际状态

时间:2015-12-11 17:39:37

标签: c# entity-framework entity-framework-6

我有两个项目。第一个项目是通过Entity Framework调用数据库的API。第二个项目是使用相同类的桌面应用程序。但是当我尝试在桌面应用程序中使用using Microsoft.AspNet.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace HelloMvc { public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { app.UseDeveloperExceptionPage(); // <=== that is missing app.UseMvcWithDefaultRoute(); } public static void Main(string[] args) => WebApplication.Run<Startup>(args); } } 选择数据时,我得到以下异常:

EF

但API项目工作正常。我使用codefirst数据库迁移。 我已经清理了解决方案,确保所有迁移都应用于处于正确状态的相应数据库和实体。

我有Entity Framework 6.0.0.0

1 个答案:

答案 0 :(得分:1)

你有选择:

  1. 首先通过添加Database.SetInitializer<API.Repository.MyDatabase.MyContext>(null);但将您的上下文定义用于桌面应用程序的启动代码来忽略该错误。
  2. 检查数据库以确定错误的原因;迁移使用名为__MigrationHistory的表来根据您的代码检查数据库的状态。最后一行应与我们上次的迁移相同。如果它们不同,那么您需要检查迁移。
  3. 如果您没有任何需要保留的数据,请恢复所有迁移并运行Add-migrationUpdate-database