THP を使用して、単純な継承を使用してコード ファーストの db アーキテクチャを実装しました。
そして、すべてのタイプのすべての通知を照会する必要があります。
テーブルのTargetUser
プロパティは関連付けです。NotificationUser
次のコードを実行しようとしています:
var notifications = _context.Notifications;
foreach (var notification in notifications)
{
Debug.WriteLine((notification is NotificationUser)? ((NotificationUser) notification).TargetUser?.Name : "-");
}
データベースのプロパティTargetUser
は外部キーを修正するように設定されていますが、コードでは結果が得られません。遅延読み込みが有効になっています。
ユーザーの熱心な読み込みは可能ですか? 私はすでに_context.Notifications.Include('TargetUser')
バイトを書き込もうとしましたが、例外がスローされました。
更新。例外は次のとおりです。
A specified Include path is not valid. The EntityType 'Core.Concrete.NotificationBase' does not declare a navigation property with the name 'TargetUser'.
この回答を次のように変更しようとしました:
var notifications = _context.Notifications.OfType<NotificationUser>()
.Include(n => n.TargetUser)
.Cast<NotificationBase>()
.Union(_context.Notifications.OfType<NotificationPlace>()
それでも同じ例外がスローされます。