私は、次の二つのクラス:私はwordFormに含まれていないだけで、それらの単語を返します。このコードを持ってLINQを使用して、子テーブルのプロパティに応じて取得する行を制限するにはどうすればよいですか?
public class Word
{
public System.Guid WordId { get; set; } // WordId (Primary key)
public string Name { get; set; } // Name (length: 20)
// Reverse navigation
public virtual System.Collections.Generic.ICollection<WordForm> WordForms { get; set; } // WordForm.FK_WordFormWord
}
public class WordForm
{
public System.Guid WordFormId { get; set; } // WordFormId (Primary key)
public System.Guid WordId { get; set; } // WordId
public int SourceId { get; set; } // Source
public string Definition { get; set; } // Definition (length: 500)
// Foreign keys
public virtual Word Word { get; set; } // FK_WordFormWord
}
は:
var words = db.Words
.Where(w => !db.WordForms.Any(z => z.WordId == w.WordId))
.AsNoTracking()
.ToList();
私はこれを変更するにはどうすればよいので、それはない単語を検索しますwordFormおよび言い換える2
のソースIDを有する
そこ単語
house
だとそれがwordFormに1のソースIDを持っている場合、私は言葉でこれを含めたいが言葉
house
だとそれがwordFormに2のソースIDを持っている場合、私はしたくありません言葉でこれを含める
WordFormsはWordの仮想プロパティなので、次のようなことはできません: var words = db.Words.WordForms.Where(x => x.SourceId == 2); –
@RickySanchez - これを私の現在のLINQにどのように適合させることができるか教えてください。私はこれを追加しようとしましたが運がありません:.Where(w => db.WordForms.Where(x => x.SourceId == 2)) –