Entity framework 什么';当代码第一次使用表名进行逆向工程时是错误的;“对象”;

Entity framework 什么';当代码第一次使用表名进行逆向工程时是错误的;“对象”;,entity-framework,Entity Framework,我首先使用Entity Framework Power Tools Beta 2来反向工程代码。在数据库中有一个表名“Object” 当我测试时,它会给我以下错误: 未映射类型“TestEFPowerTools.Models.Object”。检查是否未使用Ignore方法或NotMappeAttribute数据批注明确排除该类型。验证该类型是否定义为类、是否为基元、嵌套或泛型,以及是否从EntityObject继承 我评论完之后 public DbSet<Object> Object

我首先使用Entity Framework Power Tools Beta 2来反向工程代码。在数据库中有一个表名“Object”

当我测试时,它会给我以下错误:

未映射类型“TestEFPowerTools.Models.Object”。检查是否未使用Ignore方法或NotMappeAttribute数据批注明确排除该类型。验证该类型是否定义为类、是否为基元、嵌套或泛型,以及是否从EntityObject继承

我评论完之后

public DbSet<Object> Objects { get; set; }

modelBuilder.Configurations.Add(new ObjectMap());
公共数据库集对象{get;set;}
添加(新的ObjectMap());

在上下文文件中,一切正常。如何修复它,或者它是power tools中的一个bug?

对象在C#中是一个保留字,不过您可以通过将类映射到对象以外的其他对象,并使用fluent或数据注释映射到对象表来解决这个问题。如果可能的话,我会重新命名这个表

将类名从Object更改为其他名称,例如ObjectData。将对对象的所有引用重命名为ObjectData:

public class ObjectData ()
{

}

public DbSet<ObjectData> ObjectDatas {get;set;}
公共类ObjectData()
{
}
公共DbSet ObjectDatas{get;set;}
在配置中,添加到其他表的映射:

public class ObjectData Map : EntityTypeConfiguration<ObjectData>
{
  public ObjectDataMap()
   {
     //other mappings
     this.ToTable("Object");
   }

}
公共类ObjectData映射:EntityTypeConfiguration
{
公共对象数据映射()
{
//其他映射
本表为可转让(“对象”);
}
}

对象在C#中是一个保留字,不过您可以通过使用fluent或数据注释将类映射到Object以外的其他对象,并映射到Object表来解决此问题。如果可能的话,我会重新命名这个表

将类名从Object更改为其他名称,例如ObjectData。将对对象的所有引用重命名为ObjectData:

public class ObjectData ()
{

}

public DbSet<ObjectData> ObjectDatas {get;set;}
公共类ObjectData()
{
}
公共DbSet ObjectDatas{get;set;}
在配置中,添加到其他表的映射:

public class ObjectData Map : EntityTypeConfiguration<ObjectData>
{
  public ObjectDataMap()
   {
     //other mappings
     this.ToTable("Object");
   }

}
公共类ObjectData映射:EntityTypeConfiguration
{
公共对象数据映射()
{
//其他映射
本表为可转让(“对象”);
}
}

Nit:
Object
不是保留字<代码>对象为<代码>对象通常重新解析为
系统。对象
,但可以使用s使用不同的
。。尽管我怀疑将它映射到另一个名称仍然可以解决/避免这个问题。我没有修改表名的权限。在不重命名的情况下解决问题的最佳方法是什么?Nit:
Object
不是保留字<代码>对象
为<代码>对象通常重新解析为
系统。对象
,但可以使用s使用不同的
。。尽管我怀疑将它映射到另一个名称仍然可以解决/避免这个问题。我没有修改表名的权限。解决此问题而不重命名的最佳方法是什么?