子クラスのプロパティを基本クラスのテーブルにマップすることは可能でしょうか。2つのクラスがあるとします(短縮):
public abstract class User
{
[Key]
public int UserId { get; set; }
public string Username { get; set; }
// other properties...
}
と
public class Customer : User
{
public int ShopId { get; set; }
public virtual Shop Shop { get; set; }
// other properties...
}
私はTPT(タイプごとのテーブル)継承を使用しています(つまり、ユーザーと顧客の2つのテーブルを意味します)。何らかの理由で、ShopId
プロパティを User テーブルに配置したいのですが、Customer
クラスの他のすべてのプロパティは Customer テーブルに配置します。それは可能ですか?
User テーブルに ShopId 列があると、たとえば Username と ShopId に一意のインデックスを作成できます (アプリケーションはマルチテナントであるため、グローバルに一意のユーザー名は必要なく、ショップ レベルの一意のユーザー名のみが必要です)。