我有一个类调用ICB,它具有ICBResource类型列表的属性,可以将许多资源关联到一个ICB,问题是当我想要删除与ICB关联的资源并非真正删除时仅在已删除的布尔属性中设置为true,删除的资源仍然从DB返回。
示例:
如果此ICB关联了10个资源但后来删除了3个资源,我只想列出剩下的7个。
有一种方法可以实现.includes?
的条件// ICB class
public class ICB
{
public ICB()
{
ICBResources = new List<ICBResource>();
}
public int ICBId { get; set; }
public string Location { get; set; }
public ICollection<ICBResource> ICBResources { get; set; }
}
// Resource class
public class ICBResource
{
public int ICBResourceId { get; set; }
public virtual ICB ICB { get; set; }
public string name{ get; set; }
public bool Deleted { get; set; }
}
//here is my Repository and how I select my ICB with the resources associated
public ICB GetICB(int id)
{
return GetDbSet<ICB>()
.Include("ICBResources")
.SingleOrDefault(i => i.ICBId == id);
}
有一种方法可以包含另一个条件,例如Where(i =&gt; i.ICBResources.Where(r =&gt;!r.deleted);
答案 0 :(得分:0)
例如
public ICB GetICB(int id)
{
return GetDbSet<ICB>()
.Include("ICBResources")
.SingleOrDefault(i => i.ICBId == id && i.ICBResources.Where(r => !r.Deleted).Count() == 0);
}
如果问题与过滤相关,答案是否定的。