C# 无法检索';的元数据;MVCMusicStore.Models.Album'';

C# 无法检索';的元数据;MVCMusicStore.Models.Album'';,c#,asp.net,asp.net-mvc,entity-framework,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,我已经看了这里的一些答案,也尝试了谷歌。我不确定这个问题是否得到了回答,我只是不理解它,或者我是否在做一些不同的事情来制造类似的错误 我现在的位置。几个月来,我一直在慢慢地学习C#和MVC,通过学习教程,尝试一些东西,然后回去寻找另一个教程,试图理解系统的复杂性。所以初学者是我稳坐的地方。如果我看起来有点简单,这就是原因 我目前正在学习ASP.NET上关于创建购物车应用程序的教程。我正在创建StoreManagerController,它是第一个使用EF和视图创建的控制器。本教程针对的是比我使用

我已经看了这里的一些答案,也尝试了谷歌。我不确定这个问题是否得到了回答,我只是不理解它,或者我是否在做一些不同的事情来制造类似的错误

我现在的位置。几个月来,我一直在慢慢地学习C#和MVC,通过学习教程,尝试一些东西,然后回去寻找另一个教程,试图理解系统的复杂性。所以初学者是我稳坐的地方。如果我看起来有点简单,这就是原因

我目前正在学习ASP.NET上关于创建购物车应用程序的教程。我正在创建StoreManagerController,它是第一个使用EF和视图创建的控制器。本教程针对的是比我使用的旧版本的VS,但是,到目前为止,我已经能够完成的所有其他内容

到目前为止,我们已经创建了模型,创建了一些视图和控制器。一切都很好

为了消除我的任何潜在问题:

-建造项目 -清理项目 -注释掉web配置文件中的连接字符串 -注释掉web配置文件中的实体框架

以上这些似乎都不适合我……或者我做错了

没有帮助的错误是:


很抱歉,这个论坛不允许我将代码和两个图片一起正确地附上。将发布后续代码。

根据@ChrisFCarroll对您的问题的评论,您可能希望将连接字符串更改为:

<add name="MusicStoreEntities" providerName="System.Data.SqlClient"
 connectionString="Data
 Source=(LocalDb)\v11.0;AttachDBFilename=|DataDirectory|MvcMusicStore.sdf"/>
博客帖子

“”(LocalDB)\MSSQLLocalDB”是用于SQL的连接字符串 Express 2014和“(LocalDB)\v11.0”用于SQL Express 2012


然后,您可能需要删除并重新创建数据库。

正如我一直说的那样,经过大量修改后,webconfig文件没有问题。这个问题最终被追溯到专辑模型

诊断过程是下载示例应用程序


使用ApplicationDbContext创建控制器,然后通过从示例代码中注释并粘贴来转换为MusicStoreEntities。然后,这会在相册模型上引发一个错误。由于我还没有完全理解代码的相互交织,在进行了更多的吹毛求疵之后,结果证明演示在专辑模型中遗漏了一行。通过重构添加,所有操作正常。

请尝试修复MusicStoreEntities类,如下所示:

using System.Data.Entity;

namespace MvcMusicStore.Models
{
    public class MusicStoreEntities : DbContext
    {
        public DbSet<Album> Albums { get; set; }
        public DbSet<Genre> Genres { get; set; }
        public DbSet<Artist> Artists{ get; set; }
    }
}
使用System.Data.Entity;

命名空间MvcMusicStore.Models { 公共类MusicStoreEntities:DbContext { 公共数据库集相册{get;set;} 公共数据库集类型{get;set;} 公共数据库集艺术家{get;set;} } }
Album模型名称空间MvcMusicStore.Models{public class Album{public int AlbumId{get;set;}public int GenreID{get;set;}public int ArtistID{get;set;}public string Title{get;set;}public decimal Price{get;set;}公共字符串AlbumArtUrl{get;set;}公共流派流派{get;set;}公共艺术家{get;set;}}}}命名空间MvcMusicStore.Models{public class MusicStoreEntities:DbContext{public DbSet Albums{get set;}公共DbSet流派{get set;}所以像这样的东西不包括它?=“数据源=(LocalDb)\MSSQLLocalDB;AttachDbFilename=| DataDirectory | MvcMusicStore.mdf;“providerName=(System.Data.SqlClient)”至少我认为我有。我选择了V11.00错误,这是很久以前的事了。数据库3位于服务器资源管理器中V13.0下的一个服务器实例中……所以我很确定我没有问题