Entity Framework表名默认自动变为复数形式的解决方法

今天学习entity框架,直接用类映射数据库表结构,使用类来操作表。结果提示以下错误:

Entity Framework表名默认自动变为复数形式的解决方法_第1张图片


查遍代码页没有找到有cities这个关键词,断点分析了一下,是entity自动把表名改成了复数形式(entity大哥我真是给你跪了,变复数这样的属性也搞成标配)

百度查entity表名复数相关网页,最终发现entity有个默认变复数的属性,把这个属性移除掉就ok了。

对应代码如下(OnModelCreating就是移除变复数的默认标配):

using System.Data.Entity;

namespace SportStore.Models.Repository
{
    public class EFDbContext: DbContext
    {
        public DbSet table_cartypes { get; set; }
        public DbSet citylist { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder) {
            modelBuilder.Conventions.Remove();
        }
    }
}

网上还有一种解决方法,我试了没有效果,可能哪儿有点问题,还是贴出来吧(
[Table(Name = "city")]
就是标明该类对应数据的表名),有谁知道为什么的请回复告诉我一下,谢谢:

using System;
using System.Data.Linq.Mapping;

namespace SportStore.Models {
    [Table(Name = "city")]
    public class City {
        public Int64 id { get; set; }
        public Int64 provinceid { get; set; }
        public string city { get; set; }
        public string fword { get; set; }
    }
}




你可能感兴趣的:(ASP.NET)