既存のレガシー データベースを使用する ef プロジェクトがありますが、ef-migration を使用して新しいテーブルを追加しています。これらのエンティティについては、新しいスキーマを使用してテーブルを作成し、従来のテーブルから分離します。db テーブルでは、複数形のクラス名を使用する規則を使用します。ただし、従来のテーブル (複数形のテーブル名なし) にマップされる新しいクラスを追加すると、ef はマッピングを無視するようです。エンティティ クラス:
public class Aktor:IVersionedEntityWithId
{
public int Id { get; set; }
public string Navn { get; set; }
public byte[] Version { get; set; }
}
マッピング コード:
protected virtual void MapAktor(EntityTypeConfiguration<Tilsyn.Domain.Aktor> config){
config.ToTable("dbo.Aktor");
config.Property(v=>v.Version).IsConcurrencyToken().IsRowVersion();
config.HasKey(e=>e.Id);
}
例外:
System.Data.EntityCommandExecutionException: コマンド定義の実行中にエラーが発生しました。詳細については、内部例外を参照してください。---> System.Data.SqlClient.SqlException: 無効なオブジェクト名 'dbo.Aktors'。
テーブル名を取得するために、生成されたSQLがまだクラス名に追加されているようです。この写真には何が欠けていますか?メソッドの使い方がToTable
間違っていますか?
更新: クラス名をテーブル名以外に変更すると、うまくいくようです。名前を再度変更すると、問題は解消されました。どこかに EF キャッシュまたは非表示のマッピング ファイルはありますか?