如何解决sql查询/实体框架查询未在两个表上返回不同的值
我有一个查询,我正在两个表(表客户和表供应商)上运行。在表客户上,我可能有多行相似的记录。我使用下面的参数加入两个表,但是在查询结果中发现表供应商ID实例重复。我猜这是因为我在表客户上有多个类似的记录。请有人协助我进行正确的查询,以在联接上使用不同的ID值吗?请注意,我在项目的实体框架核心上使用了它。请参阅下面的将实体框架转换为sql的查询
SQL
select distinct * from Vendor e inner join Customer d on e.account = d.Cod_account
where (e.ActionStatus = 'Pending' and d.ActionStatus = 'Pending') and (d.Amt = e.Amount)
and (e.UploadTime = '05:00pm') and (e.Uploaddate = d.Calldate) order by d.Amt desc
ENTITY FRAMEWORK
await (from e in _dbc.Vendor join d in _dbc.Customer on e.account equals d.Cod_account
where (e.ActionStatus == "Pending" && d.ActionStatus == "Pending") && (d.Amt == e.Amount)
&& (e.UploadTime == uploadtime) && (e.Uploaddate == d.Calldate)
orderby d.Amt descending
select new CustomerVend
{
Customer = d,Vendor = e
}).Take(2000).Distinct().ToListAsync();
解决方法
我已经纠正了您的LINQ查询。 Distinct
应该放在Take
之前。
var query =
from e in _dbc.Vendor
join d in _dbc.Customer on e.account equals d.Cod_account
where e.ActionStatus == "Pending"
&& d.ActionStatus == "Pending"
&& d.Amt == e.Amount
&& e.UploadTime == uploadtime
&& e.Uploaddate == d.Calldate
orderby d.Amt descending
select new CustomerVend
{
Customer = d,Vendor = e
}
var result = await query.Distinct().Take(2000).ToListAsync();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。