我尝试过以下代码,我需要根据NAME字段随机排除重复。
列表list = db.Logos.Where(a => a.LogoName!= “empty.png”)。OrderBy(r => Guid.NewGuid())。GroupBy(a => a.LogoName) 。选择(g => g.FirstOrDefault())。Take(8)。ToList();
但我没有随机,但我尝试了另一个正确改组的代码,但重复的代码无法应用,代码如下
列表列表=(来自db.Logos中的c) 其中c.LogoName!=“empty.png” 选择c).OrderBy(r => Guid.NewGuid())。Take(3)。ToList();
请帮助您选择如何选择重复行和随机行。
答案 0 :(得分:2)
你能试试下面的吗?
var result = (from logo in db.Logos
where (logo.LogoName != "empty.png")
orderby logo.LogoName
select logo).Distinct();
答案 1 :(得分:0)
您正在进行分组前的订购。这完全失去了订单。
db.Logos
.Where(a => a.LogoName != "empty.png")
.GroupBy(a => a.LogoName)
.Select(g => g.FirstOrDefault())
.OrderBy(r => Guid.NewGuid())
.Take(8)
.ToList();
此查询的性能不会太高,但这似乎不是您主要关注的问题。在小数据集上会很快。