C# 检测客户配置文件更改
我想知道如何编写一个LINQ查询,返回在给定日期更改地址的客户列表C# 检测客户配置文件更改,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我想知道如何编写一个LINQ查询,返回在给定日期更改地址的客户列表 Cusomters - Name (nvarchar) - Address (nvarchar) - CheckInDate (datetime) 我会首先得到一份在某个日期登记的客户名单,然后循环遍历每个客户,并得到该客户的登记,以查看是否有变化。这将导致大量的数据库查询。有更有效的方法吗?这将检测到所有通过yourDate更改地址的客户 var result = Customers.Where(c=>c.CheckI
Cusomters
- Name (nvarchar)
- Address (nvarchar)
- CheckInDate (datetime)
我会首先得到一份在某个日期登记的客户名单,然后循环遍历每个客户,并得到该客户的登记,以查看是否有变化。这将导致大量的数据库查询。有更有效的方法吗?这将检测到所有通过
yourDate
更改地址的客户
var result = Customers.Where(c=>c.CheckInDate <= yourDate)
.GroupBy(c=>c.Name)
.Where(g=>g.GroupBy(c=>c.Address).Count() > 1)
.SelectMany(x=>x);
var result=Customers.Where(c=>c.CheckInDate c.Name)
.Where(g=>g.GroupBy(c=>c.Address).Count()>1)
.SelectMany(x=>x);
从您的客户
模式中,查询在给定日期或之前签入的所有客户非常简单。我看不出你在哪里记录了他们什么时候做了更改。我想,如果客户的最后两次签入可以根据模式比较地址字段,我假设没有发生非规范化。“客户A”的地址在下次入住时可能不同。如果客户A的地址在下次入住时不同,则客户A将成为返回列表的一部分