2017-03-02 8 views
0

単純なもののようですが、適切なものではないと思います。私がする必要があるのは、それ自身の子のヌルを持つ子アイテムの数を得ることです。ここに私が働いているものは次のとおりです:エンティティフレームワークには、子どもがヌルである子どもが含まれています

var data = await _context.award.Include(a => a.expenses.Select(p => p.invoice == null)).ToListAsync(); 

私は運がない他の組み合わせも試しました。私が得るエラーは

です。InvalidOperationException:[a] .expenses select([p] .invoice == null)}の経費pからのプロパティ式 'a => {'が無効です。式はプロパティへのアクセスを表す必要があります: 't => t.MyProperty'。

これは一致するように変更され、新しいエラーが発生します。 invoice親オブジェクトを設定し、nullですされていない(つまり、ソリューションに影響を与える場合だけ.IDと罰金)私はちょうどそれをawardのリストを取得したい

expenses記載されているのリストです。

UPDATE 要求されたモデル

public class invoice 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ID { get; set; } 

    [ForeignKey("INV_NUM_ForeignKey")] 
    public invoice_number fin_invoice_number { get; set; } 
} 

public class invoice_number 
{ 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ID { get; set; } 

    public int number { get; set; } 

    public invoice invoice { get; set; } 

    public string display { get { return string.Format("sps-{0}", (new String('0', 6) + number.ToString())).Substring(number.ToString().Count()-7, number.ToString().Count()); } } 
} 

答えて

1

あなたは.ThenIncludeと一緒に.Includeを使用しなければならない。ドキュメントではっきりと説明していますhere(複数のレベルを含む)。

var data = await _context.award 
    .Include(a => a.expenses) 
     .ThenInclude(e => e.invoice) 
    .ToListAsync(); 

お知らせThenIncludeは、2つのオーバーロードとチャンスはVisual Studioが間違ったものを選択するか、単に1(間違ったもの)を表示し、入力中にあなたのいずれかのエラーを与えたりしないだろうという、大きなされていることをしかし告知、 eがコレクションでない場合は、eの自己共起を指定します。エラーを無視して正しいプロパティーを入力してブラケットを閉じると、エラーは消えます。

+0

の詳細については、この

var data = await _context.award.Include(a => a.expenses).Where(p => p.expenses.Any(a => a.invoice == null)).ToListAsync(); 

Subscribeのような再書き込みあなたのコードインクルードは 'ArgumentExceptionが私を取得します:プロパティ式 'E =>(e.invoice == null)' のさ有効ではありません。式はプロパティへのアクセスを表す必要があります: 't => t.MyProperty'。' –

+0

ブラケットを外す – Tseng

+0

あなたのモデルは何ですか? – Tseng

0

一般

(EFのバージョン...あなたは、時にはそれが起こると魔法の手紙は悪夢の問題を解決し、あなたが何をしているか知っているが、 ようですあなたはdunnoを使用します)、 私が知る限り、ここに記載されているように

https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx

theseeが解決されない場合は、お使いのコンピュータを切り替えて...あなたのモデルは、プロパティ が熱心またはレイジー決め関連している

を確認してください:) .. それからちょうどEF構成チェック関係の定義で

申し訳ありませんが、まだ私は答えを書く必要があった。

0

てみLINQ

関連する問題