如何为正在使用的每种类型的服务器创建单独的DbCompiledModel

时间:2015-04-26 06:17:39

标签: c# asp.net entity-framework

我知道之前已经问过这个问题而且我已经阅读了所有这些问题,但他们没有帮助我:(

我正在尝试创建一个带视图的控制器。

我使用的是EF 6,并在web.config中配置了这个配置:

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

然后我发现EF6不支持脚手架,所以我将EF降级到版本5.事实证明,EF 5无法识别标签,所以我将其删除了:

<entityFramework>
    <defaultConnectionFactory type="Npgsql.NpgsqlFactory, Npgsql" />
</entityFramework>

现在,当我尝试创建控制器时,我收到此错误:

Using the same DbCompiledModel to create contexts against different types of database servers is not supported. 

Instead, create a separate DbCompiledModel for each type of server being used.

这是我的connectionStrings

<connectionStrings>
<add name="MyConnection" connectionString="Server=localhost;Database=hotel;User Id=postgres;Password=6060;" providerName="Npgsql" />
</connectionStrings>

我知道这应该是微不足道的。原谅菜鸟:(

我该如何解决这个问题?

如果需要,我会发布更多代码。

1 个答案:

答案 0 :(得分:1)

不是问题的解决方案,而是解决方法:

在添加控制器之前在web.config中注释连接字符串,然后您可以取消注释

我不知道为什么在地球上它会这样运作