2

たとえば、関数を渡してデータをさらにクエリできるメソッドを持つリポジトリがあります。

List<Household> households = repository.AllIncluding(i => i.Id == "1419683").ToList();

テーブルに接続するとこの呼び出しは機能しますが、ビューに接続すると次のエラーがスローされます:インクルード パス式は、型で定義されたナビゲーション プロパティを参照する必要があります。参照ナビゲーション プロパティにはドット パスを使用し、コレクション ナビゲーション プロパティには Select 演算子を使用します。

テーブルにあるリレーションシップに関連している可能性があると思いましたが、ID をクエリしても (find を使用できることがわかっています)、エラーがスローされます。助けてください!?

これが私の方法の完全な例です:

    public virtual IQueryable<Household> AllIncluding(params Expression<Func<Household, object>>[] includeProperties)
    {
        IQueryable<Household> query = _dbContext.Households;
        foreach (var includeProperty in includeProperties)
        {
            query = query.Include(includeProperty);
        }
        return query;
    }
4

1 に答える 1

1

これの代わりに

List<Household> households = repository.AllIncluding(i => i.Id == "1419683").ToList();

これを試してみてください

var households = repository.AllIncluding().Where(i => i.Id == "1419683").ToList();

もう 1 つのことは、.Includeリンクされたテーブルを意味するナビゲーション プロパティを受け入れることです。たとえばscooters、リンクされたエンティティがある場合、次のようなことができます

var households = repository.AllIncluding(x => x.Scooters).Where(i => i.Id == "1419683").ToList();
于 2013-09-17T21:35:52.937 に答える