使用最新的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");
}
没效果。还有其他建议吗?调试方法?
答案 0 :(得分:0)
这是Linqpad和复数选项的问题。一旦这些被禁用,一切正常。