私は自分のデータベースにObject
object を持っていますOwner
。Owner
には文字列がありますName
。Object
object も保持しますDetails
。
私はObject
、それDetails
は 、そしてが必要Owner.Name
です。Owner
オブジェクト全体をロードしないようにしたい(詳細はこちら)。単一のデータベース クエリのみが必要です。
私は試した:
DataContext.Objects.Select(o => new { Object = o, OwnerName= o.Owner.Name })
.Include(o => o.Object.Details);
しかし、それはスローします:
System.InvalidOperationException: 'クエリの結果の型は、エンティティ要素型を持つ EntityType でも CollectionType でもありません。インクルード パスは、これらの結果の種類のいずれかを持つクエリに対してのみ指定できます。
Include
また、前に呼び出してみましたSelect
:
var d = DataContext.Objects.Include(o => o.Details)
.Select(o => new { Object = o, OwnerName= o.Owner.Name });
Include
しかし、これは、つまりを無視します。アクセスd.Details
するとDBクエリが発生します。
何か案は?