0
私はWordとWordFormという2つのオブジェクトを持っています。それらはWordIdとリンクされています。私は私に、特定のソースIDを持つ、該当するWordFormが存在しないすべての単語を与えるLINQクエリを作成したいと思いますLINQを使用してジョインのようなクエリを作成し、子オブジェクトのプロパティをチェックするにはどうすればよいですか?
Word id Word id Wordformid Sourceid
1 1 123 1
1 234 1
1 567 2
1 890 2
2 2 111 1
3 3 113 1
4 3 222 2
:ここではこれらのデータの例です。つまり、私を与えることができるクエリ:
ソースIDセレクタが1である場合にはソースIDセレクタは2、それは私に2 & 3
を与えるだろうされている場合、それは4
に
私を与えるには、ここで私がこれまで持っているものです:
var words = db.Words
.Where(w => !db.WordForms.Any(z => z.WordId == w.WordId))
.ToList();
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 && w.SourceId!= z.SourceId)) .ToList(); –
なぜ賛成投票。私からの投票をアップしてください。 – KyloRen