尝试添加具有 CRUD 操作和 EF 的控制器时出现以下错误:
无法检索 LetLord.Models.Tenant 的元数据。不支持使用相同的 DbCompiledModel 针对不同类型的数据库创建上下文。相反,为正在使用的每种类型的服务器创建一个单独的 DbCompiledModel。
添加控制器对话框设置:
模板:具有读/写操作和视图的 MVC 控制器,使用 EF。
型号类别:租户 (LetLord.Models)
数据上下文类:LetLordContext(LetLord.Models)
我见过类似的问题,并尝试了提供的解决方案,但我cannot让它发挥作用。
我的连接字符串:
<connectionStrings>
<add name="LetLordContext" connectionString="Data Source=|DataDirectory|LetLord.Models.LetLordContext.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
In LetLordContext.cs
我没有默认构造函数。在我的InitializeSimpleMembershipAttribute.cs
我打电话的班级
WebSecurity.InitializeDatabaseConnection("LetLordContext", "UserProfile", "UserId", "UserName", autoCreateTables: true);
我尝试过的:
- 按照不同问题中的描述更改我的提供商名称。
- 删除了连接字符串and注释掉了。
- 删除并重新安装实体框架。
- 确保我安装了 SQL Server CE 4.0。
- 在 subversion 上恢复到我的项目的早期版本。
我仍然不知所措,所以任何帮助将不胜感激。
已找到解决方法,但我仍然不知道导致此错误的原因。
在根 web.config 文件中我更改了
<connectionStrings>
<add name="LetLordContext" connectionString="Data Source=|DataDirectory|LetLord.Models.LetLordContext.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
to
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=|DataDirectory|LetLord.Models.LetLordContext.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
这让我可以使用脚手架添加视图,添加后,我将字符串更改回原来的样子。据我所知任何新字符串都可以。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)