Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加控制器错误无法检索元数据_C#_Asp.net_.net_Asp.net Mvc_Visual Studio - Fatal编程技术网

C# 添加控制器错误无法检索元数据

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; }

我想在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; }
    }
}

有什么建议吗?

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,我注意到标签被弄乱了,并且遇到了上面同样的问题

以下是我所做的,它解决了问题:

  • 我从Web.config中删除了标记
  • 使用nuget从我的MVC应用卸载实体框架
  • 再次将实体框架安装到我的MVC应用程序

  • 在移除标签并重新安装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"/>