Linq和排序空字段
我有一个表(例如)有4列Linq和排序空字段,linq,sql-order-by,Linq,Sql Order By,我有一个表(例如)有4列 pk\u table\u id INT NOT NULL username VARCHAR(100)不为空 start\u日期日期时间不为空 end_date DATETIME NULL 我的要求是按结束日期的降序返回所有行,但必须先返回空值,然后按开始日期的降序返回 我已经用SQL完成了这项工作,但是有人可以用LINQ版本来帮助我完成这项工作吗 这是我们使用的SQL查询: SELECT [person_employment_id] , [pa
pk\u table\u id INT NOT NULL
username VARCHAR(100)不为空
start\u日期日期时间不为空
end_date DATETIME NULL
结束日期的降序返回所有行,但必须先返回空值,然后按开始日期的降序返回
我已经用SQL完成了这项工作,但是有人可以用LINQ版本来帮助我完成这项工作吗
这是我们使用的SQL查询:
SELECT [person_employment_id]
, [party_id]
, [employer_name]
, [occupation]
, [telephone]
, [start_date]
, [end_date]
, [person_employment_type_id]
, [person_employment_end_reason_type_id]
, [comments]
, [deleted]
, [create_user]
, [create_date]
, [last_update_user]
, [last_update_date]
, [version]
FROM [dbo].[person_employment]
WHERE ([party_id]=@party_id)
ORDER BY ISNull([end_date],'9999-DEC-31') DESC, [start_date] DESC
对于这个问题,您可以对结束日期
执行空检查,并将该结果用作排序。因此,您不需要使用相同的SQL结构来实现这一点,而是在您选择的语言中使用更自然的SQL结构(我假设是C)
var查询=
从dc.表中的行开始
让isEndDateNull=row.end\u日期==null
orderby isEndDateNull降序,row.start\u日期降序
选择行;
如果您在SQL中使用过,那么应该在问题中包括这一点。在LINQ查询中,您很快就能实现这一点。谢谢@Jeff-添加了查询。