Linq to Entities を使用していますが、データベースを 1 回だけ呼び出してデータを取得したいと考えています。
複数の会社を関連付けることができるアカウント オブジェクトがあります。また、各企業は多くの場所を持つことができます。問題なく会社のリストでアカウントを取得できます。問題は、各会社の場所のリストを取得し、それをすべてアカウント オブジェクトに戻すことです。これまでの私のコードは次のとおりです。
public Account GetAccountByUserId(int userId)
{
IQueryable<Account> oq = _context.Accounts;
oq = oq.Include(x => x.Companies);
oq = oq.Include(x => x.Companies.SelectMany(l => l.Locations); //I was just guessing here, this throws the error below
Account acct = oq.Single(x => x.Users.Any(y => y.Id == userId));
return acct;
}
.SelectMany がスローするエラー: インクルード パス式は、型で定義されたナビゲーション プロパティを参照する必要があります。参照ナビゲーション プロパティにはドット パスを使用し、コレクション ナビゲーション プロパティには Select 演算子を使用します。パラメータ名: パス
これは .Include() でも可能ではないかもしれませんが、そうでない場合は別の方法がありますか? データベースへの呼び出しを 1 回だけ行いたいと思います。