加入 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);
我正在尝试加入三个 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);