我有两个多对多关系的实体:
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。我现在想要过滤分配了某些SopField的SopFolders。我有一个包含SopField Id的IEnumerable<int> fieldTags
。
如何检查是否将一个SopFolder实体分配给一组特定的SopFields(例如SopField ID 1和2)?
我的方法(不起作用)是:
if(SopFolder.SopFields.Any(x => fieldTags.Contains(x.Id))) { /* do stuff */ }
答案 0 :(得分:0)
如果您正在寻找一个以所有分配的SopFields为特色的SopFolder,请尝试:
if (SopFolder.SopFields.All(x => fieldTags.Contains(x.Id))) { /* do stuff */ }
答案 1 :(得分:0)
此查询正确且有效。我只是在递归的文件夹循环中以错误的方式使用。
if(SopFolder.SopFields.Any(x => fieldTags.Contains(x.Id))) { /* do stuff */ }