我正在尝试使用 VS2015 遵循 Professional MVC 4 中的音乐商店示例。我在搭建音乐商店控制器时遇到问题。每次我尝试创建控制器时,都会弹出一个错误窗口,其中唯一的信息是:“运行所选代码生成器时出错:‘表中已存在密钥。’”
我已经搜索过这个特定的错误,但大多数脚手架错误解决方案似乎都与 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 Community 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; }
}
在添加控制器窗口中,使用 MusicStoreDB 作为上下文。
可以找到工作代码here http://www.wrox.com/WileyCDA/WroxTitle/Professional-ASP-NET-MVC-5.productCd-1118794753,descCd-DOWNLOAD.html.
第 4 章的代码看起来像是从数据库生成的,因此 MusicStoreDB 类略有不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)