如何动态获取表中的属性与其他表的属性?

我有一个产品表和一个促销表,我想得到产品和促销表的产品组合价格。

在产品表中。

Id       Name         Price         Detail
1    ProductName1      10            dddd
2    ProductName2      12            ssss
3    ProductName3      14             1

在促销表中:

Id       ProductId          Price           StartDate      EndDate
1            1                20             2020/06/06     2020/07/07

我想得到产品的价格 如果有产品的价格,我就会得到促销表的价格

var product =_context.Products.FindAsync(1);

product.Price 是正确的值.例如。如果我想得到产品的Id 1,然后我得到的产品Id 1的促进存在的价格20,那么我得到的价格是20.如果我想得到产品2没有一个价格在促进,那么我得到的价格是12。

我将创建的类。

public class Product{
    private decimal _price{get;set;}
    public int Id {get;set;}
    public string Name {get;set;}
    public decimal Price{
          get{
             var promote = await _context.Promotes.Where(p=>p.ProductId==Id).ToListAsync();
             if(promote.Count>0){
                  return promote[0].Price;
             }
             return _price;
          }
          set{_price=value;}

但它不工作.如何做到这一点?

解决方案:

如果你能用 EF核心包括 办法 包括 产品模型里面的Promote,那么你只需要查询一次这个数据。

var productList = 
    _context.Products.Where(product => product.Id == id)
                         .Include(product => product.Promote)
                     .ToList();

现在 product.Price 将返回 promote.Price 如果不是空的,则返回 product._price.

public class Product
{
    private decimal _price;

    public int Id { get; set; }

    public string Name { get; set; }

    public decimal Price
    {
        get => Promote?.Price ?? _price;
        set => _price = value;
    }

    public Promote Promote { get; set; }
}

给TA打赏
共{{data.count}}人
人已打赏
未分类

在Forge上获取模型中所有视图的列表。

2022-9-12 0:33:38

未分类

SearchView不能在新的片段中折叠导航组件。

2022-9-12 0:33:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索