我正在尝试学习 ASP.NET MVC,所以我正在关注 asp.net 网站上的音乐商店教程。
我正在使用 Album.cs 作为模型类和 MusicStoreEntities.cs 作为数据上下文类来创建 StoreManagerController。
创建控制器时的错误是:无法检索“MvcMusicStore.Models.Album”的元数据。不支持使用相同的 DbCompiledModel 针对不同类型的数据库服务器创建上下文。相反,为正在使用的每种类型的服务器创建一个单独的 DbCompiledModel。
听起来我正在使用两个不同的数据库,但这是来自 Web.config 的连接字符串部分:
<connectionStrings>
<add name="MusicStoreEntities" providerName="System.Data.SqlServerCe.4.0" connectionString="Data Source=|DataDirectory|\MvcMusicStore.sdf"/>
</connectionStrings>
奇怪的是,如果我注释掉 MusicStoreEntities 连接字符串,然后尝试创建它可以工作的 StoreManagerController。如果我将解决方案设置中的目标框架更改为 .NET Framework 4,在 Visual Studio 2010 中打开解决方案,然后创建控制器,它也可以工作。
那么这是 Visual Studio 2012 或连接字符串的问题吗?也许与 CE4.0 和 VS2012 存在一些兼容性问题?