我想在VS2012中的MVC 4应用程序中添加控制器作为此图像:
模型:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MvcDemo.Models
{
public class MovieDB
{
public int ID { get; set; }
public string Title { get; set; }
public string Director { get; set; }
public DateTime Date { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<MovieDB> Movies { get; set; }
}
}
连接字符串:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcDemo-20130315191956;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcDemo-20130315191956.mdf"
providerName="System.Data.SqlClient" />
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
单击“添加”后,会出现此错误:
unable to retrieve metadata for 'MvcDDemo.Models.MovieDB'.Using the
same DbCompiledModel to create contexts against different type of
database servers is not supported.instead,create a
separate DbCompiledModel for each type of server being used.
有什么建议吗?
在Web.config
中,设置第二个providerName
与第一个providerName
相同,并在创建控制器后,撤消它!
来自:here
如果有人遇到同样的问题,我的帖子可能有帮助。
我尝试在同一个项目中试验EF6和EF5,我注意到<entityFramework>标签搞砸了,上面遇到了同样的问题。
这就是我所做的,它解决了这个问题:
删除<entityFramework>标签并重新安装EF5后,它已修复,我可以再次使用我的控制器。
将providerName="System.Data.SqlServerCe.4.0
更改为providerName="System.Data.SqlClient
以修复此错误。
在尝试脚手架之前不要忘记清洁和重建!那是我的错。
用户关注providerName = "System.Data.SqlServerCe.4.0"
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0" />
我有同样的问题,下面是为我解决问题的变化。不得不改变localhost。并添加了初始目录=电影。
之前
<add name="MovieDBContext" connectionString="Data Source= localhost\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
之后(修复)
<add name="MovieDBContext" connectionString="Data Source= .\SQLEXPRESS;Initial Catalog=Movies; AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
参考:
在web.config
,删除AttachDBFilename=|DataDirectory|****.mdf
线。