我正在将Entity Framework 4.1与存储库模式一起使用(数据库已存在)。
我的问题是存在名为GROUP(保留)的表。这是生产数据库,我无法更改。
因此,使用上述所有这些技术,我得到以下错误:
“组”是保留的关键字,除非被转义,否则不能用作别名。
是否可以告诉Entity Framework使用以下作为表名:
[团体]
编辑
具有db上下文的类如下所示(向下精简)
public class AMTDatabase : DbContext
{
private IDbSet<GROUP> _Groups;
public IDbSet<GROUP> Group
{
get { return _Groups ?? (_Groups = DbSet<GROUP>()); }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<GROUP>().ToTable("GROUP");
}
//etc
}
提前致谢
最佳答案
好吧,这似乎很奇怪,但是请注意上面的属性名称:名称是Group,它应该显示为Groups!这就是我收到此错误的原因。更正后的代码如下:
private IDbSet<GROUP> _Groups;
public IDbSet<GROUP> Groups
{
get { return _Groups ?? (_Groups = DbSet<GROUP>()); }
}
现在像魅力一样工作!