从头开始,我创建了一个新的项目解决方案,其中包含两个项目:一个是MVC 3,另一个是支持EF 4.2的项目。整个解决方案构建成功。从MVC项目中,我打开“添加控制器”对话框,并让它根据我从支持EF项目选择的上下文和模型生成代码。 "添加控制器"对话框失败并显示以下消息:
无法检索'MyModelClass'的元数据。配置系统初始化失败。
我注意到"添加控制器"对话框实际上正在尝试从其web.config文件中获取数据库连接字符串。首先,这让我感到有些愚蠢,因为支持EF项目已经有了一个带有连接字符串的app.config文件。但是不管怎样,我能想到的最好的解释就是web.config中的连接字符串存在问题。它看起来像这样:
<add name="Monsters2Entities"
connectionString="
metadata=res://*/Monsters.csdl|
res://*/Monsters.ssdl|
res://*/Monsters.msl;
provider=System.Data.SqlClient;
provider connection string="
data source=.;
initial catalog=Monsters2;
integrated security=True;
pooling=False;
multipleactiveresultsets=True;
App=EntityFramework
""
providerName="System.Data.EntityClient"
/>
连接字符串实际上并没有所有荒谬的换行和缩进 - 我只是在尝试让它更易读。无论如何,该连接字符串基本上与支持EF项目中使用的连接字符串相同,因为模型是按照此方式建模的。我该如何纠正这种情况,使"添加控制器"对话框也能够正常工作呢?