C# 添加控制器错误无法检索元数据
我想在VS2012的MVC 4应用程序中添加控制器,如下图所示: 型号:C# 添加控制器错误无法检索元数据,c#,asp.net,.net,asp.net-mvc,visual-studio,C#,Asp.net,.net,Asp.net Mvc,Visual Studio,我想在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; }
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; }
}
}
有什么建议吗?在
Web.config
中,将第二个providerName
设置为与第一个providerName
相同,并在创建控制器后撤消该设置
发件人:更改
providerName=“System.Data.SqlServerCe.4.0
到
providerName=“System.Data.SqlClient
要修复此错误。在web.config
中,删除AttachDBFilename=|DataDirectory |**.mdf
行 providerName=“System.Data.SqlServerCe.4.0”的用户跟踪
如果有人有同样的问题,我的帖子可能会有所帮助 我试着在同一个项目中试验EF6和EF5,我注意到标签被弄乱了,并且遇到了上面同样的问题 以下是我所做的,它解决了问题:
在移除标签并重新安装EF5之后,它被修复,我可以再次搭建我的控制器。我也有同样的问题,下面是为我修复问题的更改。必须将本地主机更改为。并添加了初始目录=电影 以前
<add name="MovieDBContext" connectionString="Data Source= localhost\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MoviesDB.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
在尝试搭建脚手架之前,不要忘记清理和重建!那是我的错误。显而易见的一点是,您的环境正在失败。不明显的部分是原因。这通常是按降序排列的,1)web.config中的连接字符串,2)您的db 3)因为您似乎是先使用代码,所以您的初始化方法或迁移策略可能是问题所在。请解释一下你初始化数据库做了什么,什么样的数据库,任何相关的…好的,分享你的连接字符串连接到数据库肯定有问题,但我看不到。您使用的是compact,您的连接看起来很牢固。您使用的上下文是正确的……在我的例子中,我在web项目上安装了EF6,在模型项目上安装了EF5。在我的例子中,我需要更改connectionString=“metadata***”
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.
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|\Movies.sdf"
providerName="System.Data.SqlServerCe.4.0" />
<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"/>