当代码首次使用表名“Object”进行逆向工程时出了什么问题

时间:2012-08-08 20:55:08

标签: entity-framework

我使用Entity Framework Power Tools Beta 2来逆向工程Code First。在DB中有一个表名“Object”。

当我测试时,它给了我这个错误:

未映射“TestEFPowerTools.Models.Object”类型。使用Ignore方法或NotMappedAttribute数据批注检查未明确排除类型。验证类型是否已定义为类,不是原始类,嵌套类还是通用类,并且不从EntityObject继承。

我发表评论后

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

modelBuilder.Configurations.Add(new ObjectMap());

在Context文件中,一切正常。我该如何修复它还是电动工具中的错误?

1 个答案:

答案 0 :(得分:5)

对象是C#中的保留字,the base class for everything,尽管您可以通过将类重命名为除对象之外的其他内容并使用流畅或数据注释映射到对象表来解决此问题。如果可能,我会重命名表。

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

public class ObjectData ()
{

}

public DbSet<ObjectData> ObjectDatas {get;set;}

在配置中,将映射添加到其他表:

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

}