基于结果中的字段Linq不同的行



我试图过滤下面的结果,仅显示基于在选择中返回的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());

最新更新