2011-02-17 295 views
13

我想在下面的代码中添加一个截然不同的。我无法弄清楚确切的语法。提前致谢。Linq to Entities Distinct Clause

var testdates = (from o in db.FMCSA_ME_TEST_DATA 
       orderby o.DATE 
       select new 
       { 
        RequestDate = o.DATE 
       }); 

回答

16

使用Distinct()扩展方法。

请注意,Distinct()可能会否定现有的orderby(我在LINQ to SQL中已经注意到了这一点),因此您可能需要在以后使用OrderBy()方法。

var testdates = (from o in db.FMCSA_ME_TEST_DATA 
       select new 
       { 
        RequestDate = o.DATE 
       }).Distinct().OrderBy(x => x.RequestDate); 
+0

你确定Distinct()是否定否?我没有看到这种行为(运行类似的查询),并且如果我确实感到非常惊讶 – 2011-02-17 22:00:29

4
var testdates = (from o in db.FMCSA_ME_TEST_DATA 
       orderby o.DATE 
       select new 
       { 
        RequestDate = o.DATE 
       }).Distinct(); 

关键是要包装你的查询在括号中,所以你可以调用不同的方法,你已经做了,所以你需要的所有是钉在末尾的方法调用。