Bre*_*ias 10 asp.net-mvc entity-framework visual-studio
从头开始,我用两个项目创建了一个新的解决方案:一个是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"
/>
Run Code Online (Sandbox Code Playgroud)
连接字符串实际上没有所有荒谬的换行符和缩进 - 我只是想让它更容易阅读.无论如何,该连接字符串基本上与在其上建模的支持EF项目中使用的连接字符串相同.如何纠正这种情况,让"添加控制器"拨号开心?
小智 8
我安装了EF 6,它增加了:
<providers>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
Run Code Online (Sandbox Code Playgroud)
在我的配置文件中.我有其他脚手架问题,因此决定回到Ef 5.卸载EF 6并重新安装EF 5后,我从配置中删除了,然后我就能够构建我的新控制器了.我发现这是通过使用
PM> Update-Database –Verbose
Run Code Online (Sandbox Code Playgroud)
尝试这个:
<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"
/>
Run Code Online (Sandbox Code Playgroud)
我已经替换"
为'
归档时间: |
|
查看次数: |
29947 次 |
最近记录: |