Linq 基于结果中字段的不同行
Linq distinct rows based on field within the result
我正在尝试根据 select 中返回的 MacAddress 字段过滤下面的结果以仅显示不同的行。这适用于仅返回单个值但不返回对象的情况。有什么想法吗?
// Get all records which have not been imported yet?
var query = (from s in db.Stagings
join t in db.Printers on s.MacAddress equals t.MacAddress into tj
from t in tj.DefaultIfEmpty()
where t == null
select new { s.MacAddress,s.PrinterName,s.HostName,s.IPAddress,s.ReportDate}).Distinct();
是否可以在不循环的情况下进一步过滤?
这行得通吗?
var query = (from s in db.Stagings
join t in db.Printers on s.MacAddress equals t.MacAddress into tj
from t in tj.DefaultIfEmpty()
where t == null
select new { s.MacAddress,
s.PrinterName,
s.HostName,
s.IPAddress,
s.ReportDate
}
).GroupBy(s => s.MacAddress)
.Select(s => s.First());
我正在尝试根据 select 中返回的 MacAddress 字段过滤下面的结果以仅显示不同的行。这适用于仅返回单个值但不返回对象的情况。有什么想法吗?
// Get all records which have not been imported yet?
var query = (from s in db.Stagings
join t in db.Printers on s.MacAddress equals t.MacAddress into tj
from t in tj.DefaultIfEmpty()
where t == null
select new { s.MacAddress,s.PrinterName,s.HostName,s.IPAddress,s.ReportDate}).Distinct();
是否可以在不循环的情况下进一步过滤?
这行得通吗?
var query = (from s in db.Stagings
join t in db.Printers on s.MacAddress equals t.MacAddress into tj
from t in tj.DefaultIfEmpty()
where t == null
select new { s.MacAddress,
s.PrinterName,
s.HostName,
s.IPAddress,
s.ReportDate
}
).GroupBy(s => s.MacAddress)
.Select(s => s.First());