晚上学习MVC时遇到的问题。
第一步:添加实体类。
/// <summary> /// 专辑 /// </summary> public class Album { public virtual int AlbumId { get; set; } public virtual int GenerId { 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; } } /// <summary> /// 艺术家 /// </summary> public class Artist { public virtual int ArtistId { get; set; } public virtual string Name { get; set; } } /// <summary> /// 流派 /// </summary> 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; } }
第二步:添加控制器。
第三步:查看数据库上下文。
问题来了,明明是三个实体类(外键关联),为什么只生成了两个属性。
查看了三遍后,发现问题。Album 中的字段GenerId 和Genre类中的GenreId不匹配。
于是乎,发现EF对于外键关系和数据库名称都有约定。而在MVC开发中,这种约定无处不在,值得注意。
时间: 2024-10-06 04:18:06