加入 entity framework 中的三个表并仅获取第一行而不是所有行的结果

Joining three tables in entity framework and getting only result of first row instead of all the rows

我正在尝试加入三个 table 销售、产品和用户。 通过它们的 ID 从数据库中获取产品和用户名称 销售额 table.

问题是:它只计算并获取第一行销售额的结果table。

这是代码。

                                  
            var saleslist = (
                from sale in db.Sales
                join p in db.Products on sale.sale_id equals p.product_id
                join u in db.Users on sale.user_id equals u.user_id

                select new SalesView
                {
                    sale_id = sale.sale_id,
                    sale_amount = sale.sale_amount,
                    sale_time = sale.sale_time,
                    product_name = p.product_name,
                    user_name = u.user_first_name
                }).ToList();
          
            return View(saleslist);

SalesView 是一个模型 class,将用于在视图中显示计算结果。

有人可以帮忙吗?

您在 Products table 上的加入不正确。变化

join p in db.Products on sale.sale_id equals p.product_id

join p in db.Products on sale.product_id equals p.product_id

考虑到您拥有正确的联接属性,请尝试以下操作:

var saleslist = (
            from sale in db.Sales
            join p in db.Products on sale.sale_id equals p.product_id into temp
            from t in temp join u in db.Users on t.user_id equals u.user_id into temp2 
            from t2 in temp2
            select new SalesView
            {
                sale_id = sale.sale_id,
                sale_amount = sale.sale_amount,
                sale_time = sale.sale_time,
                product_name = t.product_name,
                user_name = t2.user_first_name
            }).FirstOrDefault();

        return View(saleslist);