Entity Framework 映射的时候默认给数据库表名添加复数“s”或者“es”的解决办法...

本文介绍如何在Entity Framework中进行实体映射,并通过代码示例展示了如何覆盖默认的约定,包括移除复数表名约定及指定主键。

 

展开代码
 1         #region 实体映射
 2         public DbSet<UserInfo> UserInfos { get; set; }
 3         public DbSet<SiteInfo> SiteInfos { get; set; }
 4         public DbSet<ParentBanKuai> ParentBanKuais { get; set; }
 5         public DbSet<NewInfo> NewInfos { get; set; }
 6         public DbSet<GgType> GgTypes { get; set; }
 7         public DbSet<AdvertisingInfo> AdvertisingInfos { get; set; }
 8         public DbSet<FriendLinks> FriendLinkss { get; set; }
 9         public DbSet<ChildBanKuai> ChildBanKuai { get; set; } 
10         #endregion


   #region 覆盖默认的约定----默认情况下EF将实体映射到数据库中dbo架构下的同名表上 /// <summary> /// 覆盖默认的约定 /// </summary> /// <param name="modelBuilder"></param> protected override void OnModelCreating(DbModelBuilder modelBuilder) { //移除EF映射默认给表名添加“s“或者“es” modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); 解决办法 modelBuilder.Entity<UserInfo>().HasKey(u => u.Id); //modelBuilder.Entity<UserInfo>().HasKey(u => u.Id).ToTable("UserInfo"); modelBuilder.Entity<SiteInfo>().HasKey(s=>s.Id); modelBuilder.Entity<ParentBanKuai>().HasKey(p=>p.Id); modelBuilder.Entity<NewInfo>().HasKey(n => n.Id); modelBuilder.Entity<GgType>().HasKey(g => g.Id); modelBuilder.Entity<AdvertisingInfo>().HasKey(g => g.Id).HasRequired(a=>a.GgType); modelBuilder.Entity<FriendLinks>().HasKey(f => f.Id); //modelBuilder.Entity<ChildBanKuai>().HasKey(c => c.Id); modelBuilder.Entity<ChildBanKuai>().HasKey(c => c.Id).HasRequired(c => c.ParentBanKuai); modelBuilder.Entity<ChildBanKuai>().ToTable("ChildBanKuai"); base.OnModelCreating(modelBuilder); } #endregion

  

“/”应用程序中的服务器错误。

对象名'dbo.NewInfo无效。

 

转载于:https://www.cnblogs.com/wgx0428/archive/2013/03/27/2984784.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值