我首先使用代码,一个包含大约 60 个表的数据库,标题上的错误发生在 3 个表上,我不明白为什么......
int count_manual = db.Database.SqlQuery<int>("select count(*) from My_Table").Single(); // This works
int count = db.My_Table.Count(); // this throws an exception
我得到的例外是“实体集或函数导入'My_Table'未在实体容器'My_Context'中定义”
这是我的 bdset
public DbSet<My_Table> My_Table { get; set; }
这是我在 My_Table 的 My_Context 类中的唯一参考(包括区分大小写的检查)。
如果我将变量名称更改为其他任何名称,它就可以工作。例子:
public DbSet<My_Table> My_Table_1 { get; set; }
我的模型创建被覆盖:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
}
我找不到任何问题,有没有人知道我可能缺少什么?