Linq-to-SQL でオプティミスティック コンカレンシーをサポートするために、SQL Server タイムスタンプ列 (VersionNumber と呼ばれる) を使用しています。これは、関連するテーブルが 1 つだけの場合にうまく機能します。ただし、次のようなドメイン エンティティがあります。
Person: FirstName、LastName、Age、VersionNumber
Doctor: すべての Person プロパティ + 職業
Athlete: すべての Person プロパティ + Sport、YearsPro
Musician: すべての Person プロパティ + Instrument
私のDBには Person テーブルがあり、次に Person の各タイプの他のテーブルがあります。具体的なテーブル (アスリートなど) には、アスリートに必要な列のみがあります。具体的なテーブルには、Person テーブルとの 1 対 1 のマッピングがあります。この場合、VersionNumber を使用するにはどうすればよいですか? 具体的なテーブルに独自の VersionNumber 列を含めることができますか? Person テーブルだけに VersionNumber 列が必要ですか? このシナリオでデータを保存するにはどうすればよいですか?
この特定のケースでは、アスリートを救いたいと思います。現在、Person 基本クラスのみが VersionNumber を持っています。これを保存する方法がわかりません。
注: Person は既に C# ドメイン エンティティに VersionNumber プロパティを持っているため、同じプロパティ名を具象クラスに追加することはできません。