簡體   English   中英

如何在 linq 的包含表中添加 where 條件

[英]how to add where condition in include table in linq

我可以使用動態 model 我想在該表的“ Tbl_ProductImg ”表中添加 where 條件我只想要那些具有“ isActive ”值 1 的記錄。

model.Product = db.Tbl_Product.Include(t => t.Tbl_Product_Category).Include(y=>y.Tbl_Product_Dimensions).Include(I => I.Tbl_ProductImg).Where(x => x.Id == id && x.IsActive == 1 && x.Tbl_ProductImg.Any(y=>y.isActive==1)).FirstOrDefault();

var result = Global.jsonConvert(model);

我假設您有一個 Product class 和 ProductImg class 代表您的數據庫表,如果您想獲取所有 ProductImg 數據。

產品.cs:

public class Product
{
    public int Id { get; set; }
    public int IsActive { get; set; }

    public IEnumerable<ProductCategory> ProductCategories { get; set; }
    public IEnumerable<ProductDimension> ProductDimensions { get; set; }
    public IEnumerable<ProductImg> ProductImages { get; set; }
}

產品圖片.cs:

public class ProductImg
{
    public int Id { get; set; }
    public int ProductId { get; set; }
    public int IsActive { get; set; }

    public ProductDto Product { get; set; }
}

您可以通過以下方式獲取活動產品圖片:

model.Product = db.Tbl_Product
                .Where(p => p.Id == id && p.IsActive == 1)
                .Select(p => new Product
                {
                    Id = p.Id,
                    IsActive = p.IsActive,
                    //and you can get whatever you want..
                    ProductImages = p.ProductImages.Where(pi => pi.ProductId == p.Id && pi.IsActive == 1).Select(pi => new ProductImg
                    {
                        Id = pi.Id,
                        IsActive = pi.IsActive
                        //and you can get whatever you want..
                    })
                }).FirstOrDefault();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM