在Web.config中使用configSource时,不支持使用EntityFramework的脚手架控制器或视图

时间:2018-01-17 14:20:07

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

如果我尝试添加新的Web API 2 Controller with actions, using Entity Framework,我会收到以下消息:

  

使用EntityFramework的脚手架控制器或视图不是   在Web.config中使用configSource时支持

enter image description here

configSource中唯一Web.config用于Unity。

<unity configSource="Unity.config" />

如果我注释掉这一行,我可以按预期使用该方法。这与Unity,DI或仅configSource

有关

4 个答案:

答案 0 :(得分:1)

在VS2015中,这给出了一个硬错误,您不知道在哪里看。

他们通过添加此错误消息“修复”了VS2017中的问题。除了将配置数据(在我的情况下为连接字符串)直接放入web.config中,并且不引用外部文件,没有其他解决方案。

没有其他解决方案

答案 1 :(得分:0)

我认为您正在使用外部EF模式并且您使用两个提供商。如果您的项目connectionString放置/未放置在web.config之外,请检查conString提供程序并确保在web.config中有一个EntityFramework元素提供程序的提供者
EF config in Web.config

答案 2 :(得分:0)

您必须使用外部表单才能连接到数据库。尝试在web.config中使用connectionStrings。

答案 3 :(得分:0)

除了没有在web.config中使用configsource之外,我知道迄今为止没有真正的解决方案。但是,使用配置转换对我来说似乎是一个适当的解决方法。

示例:

我们有一个使用' configSource '在web.config中引用的重写文件(请参见下面的A)。由于脚手架错误,我从web.config中删除了整个节点,并添加了对Web.Release.config的转换以插入它(请参见下面的B)。我只在产品上需要它,但是大概web.debug.config也可以工作。

ps-如果右键单击web.release.config,将看到“预览转换”选项。这非常有帮助。

A-Web.config(旧)

<rewrite>  
    <rewriteMaps configSource="UrlRewriteMaps.config"></rewriteMaps>  <!-- configSource SCAFFOLDING ERROR HERE -->
</rewrite>

B-Web.Release.Config(新)

<system.webServer>
<rewrite xdt:Transform="Insert">
  <rewriteMaps configSource="UrlRewriteMaps.config"></rewriteMaps>
</rewrite>

相关问题