1

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 回だけ行いたいと思います。

4

1 に答える 1

1

次のような会社と場所だけを含めてみましたか:

_context.Accounts.Include("Companies.Locations");
于 2012-04-16T11:51:49.327 に答える