System.Data.Entity.MigrateDatabaseToLatestVersion的类型初始值设定项引发异常

时间:2017-10-16 23:29:03

标签: c# asp.net-mvc entity-framework

在尝试使用ASP.NET MVC5项目中的EF 6.0.0构建EF派生上下文的MVC控制器时出错。

  

System.Data.Entity.MigrateDatabaseToLatestVersion的类型初始化程序引发了异常。

     

'system.data.entity.internal.appconfig'的类型初始值设定项   抛出异常配置系统无法初始化实体   框架类型初始化器抛出异常无法加载   文件或程序集无法识别的元素'providers'。实体框架

从所有共享项目以及此项目中删除EF并没有什么不同。当前上下文曾经在MVC4站点上使用,然后在迁移到MVC5时使用,但是这个新项目被添加为新的MVC5项目,并且上下文用于其他MVC5(从MVC4类迁移。)我们正在执行代码基于配置使用DbConfiguration ...

我们的配置条目已定义:

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
  <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>

但我认为EF 6甚至不再需要进入。我可能错了,我现在就把它留在那里。我知道与DB的连接正在工作,因为这是我在设置SimpleMembership数据库的init时修复的第一件事(无法找到DefaultConnection)。

我还确认配置是根据内部例外中引用MS主题的其他项目正确安排的:https://msdn.microsoft.com/en-us/data/jj680699?f=255&MSPPError=-2147217396

1 个答案:

答案 0 :(得分:0)

嗯......我看到了我错过的内容......在global.asax中,有几行在其他项目中初始化数据库......好吧......它丢失了:

using (var context = new Data.FooContext()) 
{
    context.Database.Initialize(false);
}

我想我的后续问题是为什么这里需要这个。这闻不是吗?  也许不是。但对我来说,初学者就是这样。