日期:2014-05-17  浏览次数:20414 次

asp.net mvc3 和 Entity Framework 联合使用时发现的问题
问题是在新建Controller类时发现的,新建Controller时选择了新增Data Context Class,将名称命名为
MusicStoreDB,然后生成的代码如下所示:
public class MusicStoreDB : DbContext
    {
       public DbSet<Album> Album { get; set; }

        public DbSet<Genre> Genre { get; set; }

        public DbSet<Artist> Artist { get; set; }
    }


奇怪的是生成的实体集合的名称像Album,Genre都是单数形式,为什么不是复数形式?我在项目中定义了Album,Genre,Artist三个实体类,放在三个cs文件中,具体代码如下所示:
Album.cs

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

                                        
    }


Genre.cs

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


Artist.cs

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


是不是要在哪里配置下?还是说要通过运行EDM向导才能重新配置?

------解决方案--------------------
这个在从数据库生成实体的时候,有个Checkbox 问是否要复数的选框。
------解决方案--------------------
你是在做那个MvcMusicStore么?好好看看人家提供的教程和源代码,你有什么差错。
------解决方案--------------------
这个没啥好纠结的吧,就是个变量名,自己改一下就是了,连BUG都算不上。不过我试了一下倒是带复数形式的,可能是版本问题,我的是EF 5.0.