2011-10-28 4 views
1

Suposeこの方法Entity Frameworkのは無視参加するすべての私含ま

private IQueryable<FactureAnonyme> RequeteFacture(params Expression<Func<Facture, object>>[] includes) 
    { 
    return from f in _contexte.Set<Facture>().Include(includes) 
      from mf in f.MontantsFacture.OfType<MontantFrais>().DefaultIfEmpty() 
      from mt in f.MontantsFacture.OfType<MontantTaxeUnit>().DefaultIfEmpty() 
      select new FactureAnonyme 
      { 
       Id = f.Id, 
       Facture = f, 
       MontantsFrais = mf, 
       MontantsTaxeUnit = mt, 
       Frais = mf.Frais, 
       TaxeUnitaire = mt.TaxeUnitaire, 
       Taxe = mt.TaxeUnitaire.Taxe 
      }; 
    } 

私は私のオブジェクト「骨折」クエリがなぜ含ま私のすべてを無視し得ますか?また、私のオブジェクトFactureのナビゲーションプロパティを含めるにはどうしたらいいですか?

N.B.レイジーロードを使用したくないです。

ありがとう!

答えて

2

by designです。 Includeは、カスタム結合または投影の使用を開始すると失われます。投影されたタイプのプロパティを公開し、手動で投影する必要があります。

+0

あまりユーザーフレンドリーではありません。私は、コンパイラが間違いを犯すことを好みました。デフォルトは、リクエストが本当に仕事をしているとみなされます。 – Francis

+0

この問題の回避策はありますか?私は多くのソリューションを試してみましたが、何も働いていません...私はSQLでこれを行う方法を知っていますが、EFでは本当に悪夢です! – Francis

+0

回避策はありません。 'Include'(=直接エンティティクエリ)を使うことができるエンティティアクセス、またはあなた自身がすべてをロードする必要がある特殊な投影データが必要な場合のどちらかです。 –

関連する問題