我有以下两个类:
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 string Definition { get; set; } // Definition (length: 500)
// Foreign keys
public virtual Word Word { get; set; } // FK_WordFormWord
}
单词表有一些匹配WordForms的单词,有些单词没有。我需要的是获得没有相应WordForms的单词列表。
这是我到目前为止的代码。我知道如何添加一个简单的。但是我需要的是我没见过的东西:
var words = db.Words
.AsNoTracking()
.ToList();
有人可以告诉我如何修改此代码以满足我的要求吗?
答案 0 :(得分:2)
子查询应该有效:
var words = db.Words
.Where(w=> !db.WordForms.Any(z=> z.WordId == w.WordId))
.AsNoTracking()
.ToList();
答案 1 :(得分:1)
您可以轻松获得没有Words
的{{1}}:
WordForms
答案 2 :(得分:1)
此代码有效,无需在任何语句中进行过滤!
var words = db.Words.Where(e => !e.WordForms.Any())
.AsNoTracking()
.ToList();
答案 3 :(得分:0)
另一种选择是使用左连接
onClick