1

私はEntityFrameworkPower ToolsBeta2を使用してコードファーストをリバースエンジニアリングしていました。DBには、「オブジェクト」というテーブル名があります。

テストすると、次のエラーが発生します。

タイプ'TestEFPowerTools.Models.Object'はマップされませんでした。IgnoreメソッドまたはNotMappedAttributeデータアノテーションを使用して、タイプが明示的に除外されていないことを確認してください。タイプがクラスとして定義されており、プリミティブ、ネスト、または汎用ではなく、EntityObjectから継承されていないことを確認してください。

コメントアウトした後

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

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

コンテキストファイルでは、すべてが正常に機能します。どうすれば修正できますか、それとも動力工具のバグですか?

4

1 に答える 1

5

オブジェクトは、すべての基本クラスであるC#の予約語ですが、クラスの名前をオブジェクト以外にマッピングし、流暢なアノテーションまたはデータアノテーションを使用してオブジェクトテーブルにマッピングすることで、これを回避できる場合があります。ただし、可能であればテーブルの名前を変更します。

クラス名を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");
   }

}
于 2012-08-08T20:57:54.613 に答える