我想在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.
有什么建议吗?
答案 0 :(得分:19)
在Web.config
中,将第二个providerName
设置为与第一个providerName
相同,然后在创建控制器后撤消!
这:here
答案 1 :(得分:5)
更改
providerName="System.Data.SqlServerCe.4.0
至
providerName="System.Data.SqlClient
来解决此错误。
答案 2 :(得分:5)
如果有人遇到同样的问题,我的帖子可能会有所帮助。
我尝试在同一个项目中尝试使用EF6和EF5,我注意到&lt; entityFramework&gt;标签搞砸了,上面遇到了同样的问题。
这就是我所做的,它解决了这个问题:
删除&lt; entityFramework&gt;后标记并重新安装EF5它已修复,我可以再次使用我的控制器。
答案 3 :(得分:1)
在尝试安装脚手架之前,别忘了清洁和重建!那是我的错误。
答案 4 :(得分:0)
providerName = "System.Data.SqlServerCe.4.0"
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0" />
答案 5 :(得分: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"/>
参考:
答案 6 :(得分:0)
答案 7 :(得分:-1)
在web.config
中,删除AttachDBFilename=|DataDirectory|****.mdf
行。