c# - Linq 实体框架
问题描述
我已经尝试了很多小时来创建具有 distinct 和 orderby 的 Linq 查询。在本文中,描述了与此相关的一般问题。我找到解决方案的唯一方法是创建一个普通的 SQL 查询
SELECT TOP (10) [DATA]
FROM TestResult
inner join TestResultRelated on TestResultRelated.TestResult = TestResult.ID
WHERE TestResultRelated.PATH = 'TestResultRelatedAdditionalData.SoftwareVersion'
AND TestResult.USER_LOGIN_NAME = 'emilwkj'
AND TestResultRelated.DATA != ''
group by TestResultRelated.DATA order by max([START_DATE_TIME]) desc
我不需要解决这个确切问题的方法,但这里有一个关于该问题的示例:
Table 1:
ID | DateUsed | Version
1 | 01/01/2018 | 1.0
2 | 02/03/2018 | 1.1
3 | 05/05/2018 | 1.0
4 | 04/06/2018 | 1.4
在上表中,如何在 LinQ 中提取最后使用的 3 个不同的软件版本?
这可以在 LinQ 中实现吗?
解决方案
做这样的事情:(根据你的更新列名)
var query = (from c in TestResult
join tbl2 in TestResultRelated on c.ID equals tbl2.TestResult
where c.USER_LOGIN_NAME = 'emilwkj' and tbl2.DATA != ''
orderby tbl2.DATA
group tbl2 by tbl2.DATA into g
select new
{
Id = g.Key.Id,
Name = g.Key.Name,
TestResultRelated = g
})
.Distinct() //.Distinct(x=>x.someColumn)
.OrderByDescending(x => x.date);
.Take(10)
推荐阅读
- javascript - 猫鼬 insertOne node.js 插入失败
- assembly - 如何以汇编语言存储键盘输入
- node.js - 如何等待函数响应响应而不是承诺?
- ruby-on-rails - Rails 无法推断您是否在 rails - 6 using nginx 中的 database.yml 中使用多个数据库
- android - 如何让 Xamarin 表单应用程序在 Android 10 上自动启动?
- vue.js - Vue 插槽在罕见和不可预测的情况下不起作用(潜在的 Vue 错误?)
- f# - F# Feliz.Bulma 下拉/组合框
- playwright - 是否有类似 EventFiringWebDriver 到 PlayWright 自动化的东西?
- python - 熊猫:如何在总和小于相应列的情况下递增地添加一列?
- mysql - 过滤左连接唯一值