0

我在多对多关系中有两个实体:

public class SopFolder
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public virtual ICollection<SopField> SopFields { get; set; }
    }

public class SopField
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public virtual ICollection<SopFolder> SopFolders { get; set; }
    }

一个 SopFolder 实体被分配给多个 SopField。我现在想过滤分配了某些 SopFields 的 SopFolders。我有一个IEnumerable<int> fieldTags包含 SopField Id 的。

如何检查一个 SopFolder 实体是否分配给一组特定的 SopField(例如 SopField ID 1 和 2)?

我的方法(不起作用)是:

if(SopFolder.SopFields.Any(x => fieldTags.Contains(x.Id))) { /* do stuff */ }
4

2 回答 2

0

此查询正确且有效。我只是在递归文件夹循环中以错误的方式使用。

if(SopFolder.SopFields.Any(x => fieldTags.Contains(x.Id))) { /* do stuff */ }
于 2013-07-16T00:28:15.990 回答
0

如果您正在寻找具有所有已分配 SopField 的 SopFolder,请尝试:

if (SopFolder.SopFields.All(x => fieldTags.Contains(x.Id))) { /* do stuff */ }
于 2013-07-15T23:20:56.833 回答