c#EF在SQL Compact上生成错误的表名

时间:2014-09-24 07:13:26

标签: c# entity-framework sql-server-ce

使用最新的EF和EF SQL Compact(6.1.1)和SQL(4.0)....

通过Linqpad注意到通过我的初始化程序生成的表名(DropCreateDatabaseAlways)与我在属性中指定的表名不同。开发时我正在创建一个用于测试目的的嵌入式数据库,但在其他环境中,数据库将是遗留的,这意味着表名必须匹配。

如果我在实体上有 [表格(" p_Brand_Visited")] ,则生成的表格名称为 P_Brand_Visiteds 。第一个字母大写,名称为复数。不确定为什么不遵守属性。也许是一个SqlCe问题?

通过 OnModelCreating 事件尝试删除复数:

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

没效果。试图设置表名:

 protected override void OnModelCreating(DbModelBuilder modelBuilder) {
   modelBuilder.Entity<BrandVisited>().ToTable("p_Brand_Visited");
 }

没效果。还有其他建议吗?调试方法?

1 个答案:

答案 0 :(得分:0)

这是Linqpad和复数选项的问题。一旦这些被禁用,一切正常。