【发布时间】:2014-09-26 21:03:47
【问题描述】:
我的环境:VS 2013 Express 中的 ASP.net 和 C#。
我已经阅读了许多类似的 SO 文章,试图解决这个问题。一般来说,我是 Linq to SQL 查询和 c# 的业余爱好者。
我正在尝试使用 Linq to SQL 从列中获取前 5 个最近的不同值,然后将它们添加到列表中。我的应用程序是 asp.net,使用 c# 和 .dbml 文件进行数据抽象。
我尝试了很多不同的方法。我要么得到非不同但排序的列表,要么得到一个不同的未排序列表。到目前为止我所拥有的如下
var Top5MFG = (from mfg in db.orders
where mfg.manufacturer.Length > 0 && mfg.customerid == "blahblahblahblahblah"<br />
select new {
manufacturer = mfg.manufacturer,
date = mfg.date_created
})
.Distinct()
.OrderByDescending(s => s.date);
我认为我的“Distinct”正在查看“ID”列,也许我需要告诉它我希望它查看“制造商”列,但我还没有弄清楚如何/如果它是可以这样做。
我可以通过使用存储过程轻松地做到这一点,但如果可能的话,我真的试图直接使用 c# 代码来做到这一点。这是我在 SO 上的第一篇文章,我希望我已经把它正确地放在一起。非常感谢任何帮助。
谢谢
【问题讨论】:
-
以下文章中解释了几种可能的解决方案:CodeProject : DistinctBy in Linq (Find Distinct object by Property)
标签: c# linq linq-to-sql