同じテーブルを使用する 2 つ以上のモデルがあるシナリオがあります。RecordCareerWorkshopとRecordRecruitmentとしましょう。これは、検証要件、表示名、検証エラー メッセージなどが異なる可能性があるためです。
2 つのモデルを作成し、クラスの上に [Table("record")] を置きます。
例えば:
[Table("records")]
public class RecordCareerWorkshop
と
[Table("records")]
public class RecordRecruitment
ただし、Web ページを実行すると、次のようなエラー メッセージが表示されます。
エンティティ タイプ 'RecordCareerWorkshop' と 'RecordRecruitment' はテーブル 'Record' を共有できません。これらは同じタイプ階層にないか、それらの間で主キーが一致する有効な 1 対 1 の外部キー関係を持たないためです。
同じテーブルを共有する 2 つのモデルを使用する方法を教えてください。
編集:
テーブルrecordsの同じ基本クラスから両方のモデルを派生させた場合、たとえば:
public class Record
と
public class RecordCareerWorkShop : Record
と
public class RecordRecruitment : Record
エラーメッセージが表示されます:
「フィールド リスト」の不明な列「Extent1.Discriminator」
たとえば、コードを実行するたびに:
var records = db.RecordRecruitment.Where(x => x.company_id == id).ToList();
Extent1,Discriminator がどこに表示されるのか本当にわかりません。