我在payment
表中有Emp_id
、name
和payment_date
列,在这个表格中,将有Emp_id
和name
的重复值与不同的payment_date
。所以,当我想得到那些没有在给定的支付日期支付他们的工资的雇员姓名列表时,结果是重复的,只比较支付日期。我得到了重复的emp_id
和name
。但我只想得到雇员姓名和emp_id
一次,而不重复。
List<string> empIds =
db.UnRegistrations.Select(e => e.emp_Id).ToList();
foreach (string cbeId in cbeIds)
{
var unpaid = db.UnContributions
.Where(td => td.Payment_month != date && td.Emp_Id == empIds)
.GroupBy(td => new { td.emp_Id, td.Payment_month })
.Select(group => group.First())
.ToList()
unpaidContributions.AddRange(unpaid);
}
1条答案
按热度按时间lstz6jyr1#
您可以将LINQ查询修改为仅按雇员ID分组,然后选择不同的雇员姓名。下面是一个示例:
在此LINQ查询中,未付摊缴仅按雇员ID(组键)分组,然后它选择每个组中的第一条记录以获取雇员姓名(假设具有相同雇员ID的所有记录的姓名相同)。它还使用Contains方法按已检索的雇员ID列表筛选未付摊缴。
empIds列表上不必要的
ToList
调用也已删除。希望这个有用。