C# 检测客户配置文件更改

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

我想知道如何编写一个LINQ查询,返回在给定日期更改地址的客户列表

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将成为返回列表的一部分