gpt4 book ai didi

c# - 使用 LINQ,我如何限制根据子表属性检索的行?

转载 作者:行者123 更新时间:2023-11-30 20:35:15 25 4
gpt4 key购买 nike

我有以下两个类:

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
}

我有这段代码只返回那些不在 wordForm 中的词:

var words = db.Words
.Where(w => !db.WordForms.Any(z => z.WordId == w.WordId))
.AsNoTracking()
.ToList();

我如何更改它以便它检索不在 wordForm 中且 sourceId 为 2 的单词。

换句话说

  • 如果有单词 house 并且它在 wordForm 中的 SourceId 为 1 那么我想在单词中包含它

  • 如果有一个单词 house 并且它在 wordForm 中的 SourceId 为 2,那么我不想将其包含在单词中

最佳答案

如果可行,试试这个。

var words = db.Words
.Where(w => !db.WordForms.Any(z => z.WordId == w.WordId) && db.WordForms.Any(y => y.SourceId == 2))
.AsNoTracking()
.ToList();

P.S我没有编译检查!!

关于c# - 使用 LINQ,我如何限制根据子表属性检索的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38278268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com