c# - LINQ 包含可空 guid 字段

标签 c# .net mysql linq

我想为“ids”数组中的每个 QuestionID 选择最新的 DataItem 记录。 因为我不能在 LINQ 中使用 .Value,所以我已将 ID 转换为 Nullable。但是我现在得到一个'Object must implement IConvertible'

表:数据项

------------------------------------
ID                  |   Guid        |
DataItemTimeLocal   |   DateTime    |
QuestionID          |   Guid?       |
------------------------------------

Guid?[] ids = GetAllQuestions().Select(x => (Guid?)x.ID).ToArray();
var latestItems = (from di in DataObjects.DataItems
                       where di.QuestionID != null && ids.Contains(di.QuestionID)
                       group di by di.QuestionID into g
                       select g.OrderByDescending(x => x.DataItemTimeLocal).FirstOrDefault()
           ).ToDictionary(x => x.QuestionID, y => y);

最佳答案

Guid[] ids = GetAllQuestions().Select(x => x.ID).ToArray();

var latestItems = (from di in DataObjects.DataItems
                   where di.QuestionID.HasValue && 
                         ids.Contains(di.QuestionID.Value)
                   group di by di.QuestionID into g
                   select g.OrderByDescending(x => x.DataItemTimeLocal)
                           .FirstOrDefault()
                   ).ToDictionary(x => x.QuestionID, y => y);

关于c# - LINQ 包含可空 guid 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14646871/

相关文章:

c# - 基于 C# 的不同服务之间的通信

c# - displayformatattribute 自定义格式化字符串

.net - 程序集中类的数量如何影响性能?

.net - 根据其属性之一将对象序列化为 null

MYSQL 查询不返回 BETWEEN 的结果,但在子查询中返回小于和等于的结果

c# - 可以使用可移植类库通过 channel 工厂在Silverlight中使用WCF服务吗?

C# 添加新子对象时更新父对象

.net - SQL Server 停止加载程序集

mysql - 无论如何,要提高 SQL 查询的性能,以按标签匹配计数查找具有 order 的行

mysql - SQL如何先按天排序,然后按总和排序