我不刪除實體。我只是通過IsDeleted屬性來簽署它們。問題是,當我得到一個父元素時,即使IsDeleted propery是true或false,它的所有子元素也會被加載。然後我做了類似下面的事情,但我想知道有沒有更好的方法來做到這一點?在實體框架中篩選子實體的最佳方式
var result = from p in context.Set<Product>().Include(x => x.Reviews)
select new
{
Product = x,
ProductReviews = x.ProductReviews.Where(y => !y.IsDeleted)
};
var products = new List<Product>();
foreach (var product in result.OrderBy(x => x.Product.Id).Skip(skipRecords).Take(pageSize))
{
var p = new Product();
p = product.Product;
p.ProductReviews = product.ProductReviews.ToList();
products.Add(p);
}
return products;
如何改進此代碼塊?
感謝
當你說所有加載的孩子都是真或假時,你是什麼意思?該過濾器不工作?或者它加載或孩子和他們通過isDeleted過濾? – Overmachine
有些子實體被刪除,因此IsDeleted prop對它們是1。但我只想得到實體的IsDeleted prop爲0時。 –