Asp.net mvc 在实体框架中连接三个表,只得到第一行的结果,而不是所有行的结果

Asp.net mvc 在实体框架中连接三个表,只得到第一行的结果,而不是所有行的结果,asp.net-mvc,entity-framework,linq-to-sql,Asp.net Mvc,Entity Framework,Linq To Sql,我试图加入三个销售、产品和用户表。 通过数据库中的id从数据库中获取产品和用户名 销售表 问题是:它只计算并获取销售表第一行的结果 这是代码 var saleslist= 来自数据库中的销售。销售 将p加入db.Products on sale.sale_id等于p.product_id 加入数据库。出售用户。用户id等于用户id 选择新建SalesView { sale\u id=sale.sale\u id, 销售金额=销售。销售金额, sale\u time=sale.sale\u ti

我试图加入三个销售、产品和用户表。 通过数据库中的id从数据库中获取产品和用户名 销售表

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

这是代码

var saleslist= 来自数据库中的销售。销售 将p加入db.Products on sale.sale_id等于p.product_id 加入数据库。出售用户。用户id等于用户id 选择新建SalesView { sale\u id=sale.sale\u id, 销售金额=销售。销售金额, sale\u time=sale.sale\u time, 产品名称=产品名称, user\u name=u.user\u first\u name }托利斯特先生; 返回Viewsaleslist 您在Products表上的联接不正确。改变

join p in db.Products on sale.sale_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);

你确定sale.sale\u id等于p.product\u id是正确的吗?看起来应该是销售。产品质量p。产品质量。谢谢!这是唯一的问题。我怎样才能把你的答案标记为正确?我还没有添加答案:-会这么做的。谢谢斯蒂芬。非常感谢,非常感谢。这也有帮助。
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);