c# - 搭建controller vs2015时报错Key Already Exists in Table

标签 c# asp.net-mvc entity-framework visual-studio visual-studio-2015

我正在尝试使用 VS2015 遵循 Professional MVC 4 中的 Music Store Example。我在构建音乐商店 Controller 时遇到问题。每次我尝试创建 Controller 时,都会弹出一个错误窗口,其中唯一的信息是:“运行所选代码生成器时出错:'表中已存在 key 。'”

我已经四处搜索这个特定的错误,但大多数脚手架错误解决方案似乎都是关于 web.config 中的错误,但我的 web.config 中甚至没有任何改变,它是新项目时创建的默认配置已创建。

我已尝试创建另一个 MVC 项目并再次对模型进行编码,但我仍然收到错误。

如果有帮助,我正在使用 Microsoft Visual Studio Enterprise 2015 版本 14.0.247200 Update 1。

我在Models文件夹中创建的类如下,和书中的一模一样:

public class Album
{
    public virtual int AlbumId { get; set; }
    public virtual int GenreId { get; set; }
    public virtual int ArtistId { get; set; }
    public virtual string Title { get; set; }
    public virtual decimal Price { get; set; }
    public virtual string AlbumArtUrl { get; set; }
    public virtual Genre Genre { get; set; }
    public virtual Artist Artist { get; set; }
}

public class Artist
{
    public virtual int ArtistId { get; set; }
    public virtual string Name { get; set; }
    public virtual string Description { get; set; }
}

public class Genre
{
    public virtual int GenreId { get; set; }
    public virtual string Name { get; set; }
    public virtual string Description { get; set; }
    public virtual List<Album> Albums { get; set; }
}

谢谢你的帮助

最佳答案

我遇到了同样的问题。我正在使用 Visual Studio Communitty 2015。 使用以下代码尝试模型类:

public class MusicStoreDB : DbContext
{
    public MusicStoreDB() : base("name=MusicStoreDB")
    {
    }

    public DbSet<Album> Albums { get; set; }
    public DbSet<Artist> Artists { get; set; }
    public DbSet<Genre> Genres { get; set; }
}

在添加 Controller 窗口,使用 MusicStoreDB 作为上下文。

可以找到工作代码here .

第 4 章的代码看起来像是从数据库生成的,因此 MusicStoreDB 类略有不同。

关于c# - 搭建controller vs2015时报错Key Already Exists in Table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34333966/

相关文章:

asp.net-mvc - 如何使用 ASP.NET 5 MVC 6 保护 Web API

jquery 动态背景图片 url 不起作用

c# - 在 .Net Core/EF Core 中设置多个相同类的外键

c# - LINQ vs sql - 带回太多行

c# - 将字符串长度转换为十六进制值以添加到 List<byte>

c# - `internal` 和单个项目的 `public` 一样吗?

c# - 如何在 ASP.NET 中使 List 变量常量

c# - Automapper:从单个源值填充多个目标值

C# MVC 如何将按钮值传回 Controller ?

c# - 没有 csc.exe 的 XML 序列化