Tenant
から継承するクラスがありUserProfile
ます。タイプごとのテーブル継承を使用しているので、コンテキストクラスは次のようになります。
// 1 DbSet for superclass UserProfile
public DbSet<LetLord.Models.UserProfile> UserProfile { get; set; }
データアクセスにリポジトリクラスを使用してTenantRepository
おり、次のパッケージマネージャーコマンドで作成しました。
足場コントローラーテナント-リポジトリ
アプリケーションを実行しようとすると、TenantRepository内のTenantへのすべての参照が次のエラーをスローします...
「MyNamespace.MyContext」には定義「Tenant」が含まれておらず、最初の引数「MyNamespace.MyContext」を受け入れる「Tenant」の拡張子が見つかりませんでした。
...次の参照など:
public IQueryable<Tenant> All
{
get { return context.Tenant; } // error line here
}
型ごとのテーブル継承を使用する場合はDbSet
、基本クラスののみを含める必要があるため、エラーが発生する理由を理解しています。
私のようなシナリオで実装された派生クラスでリポジトリをどのように使用していますか?
編集
.Add()
、などを使用すると.Find()
、上記はどのように達成され.Remove()
ますか?
前述のメソッドについて上記で説明したのと同じエラー:
public Tenant Find(int id)
{
return context.UserProfile.OfType<Tenant>().Find(id); // error at .Find()
}