无法将WhereSelectEnumerableIterator`2 [Models.AddonBatch,System.DateTime]类型的对象强制转换为System.IConvertible类型

时间:2014-12-11 20:40:09

标签: c# linq razor max min

我无法让这个LINQ查询正常工作。

我在Razor View中有一个模型,其中包含少量列,其中一列是一个名为Trans的项目列表,Trans里面有几列,例如

model { ID, Name, Email, Trans { ID, PostingDate, Amount}, Date}

我想获得列发布日期的MIN和MAX日期,我试过这个:

DateTime dateFrom = Convert.ToDateTime(Model.Select(d => d.Trans.Min(b => b.PostingDate)));

DateTime dateTo = Convert.ToDateTime(Model.Select(d => d.addonTrans.Select(t => t.PostingDate)).Max());

但这些都没有奏效。

有什么建议吗?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用:

DateTime dateFrom = models
    .SelectMany(d => d.Trans)
    .Select(tr => Convert.ToDateTime(tr.PostingDate))
    .Min();

DateTime dateTo = models
    .SelectMany(d => d.Trans)
    .Select(tr => Convert.ToDateTime(tr.PostingDate))
    .Max();

如果PostingDate的类型已经是DateTime,则您不需要Convert来电:

DateTime dateFrom = models
    .SelectMany(d => d.Trans)
    .Min(tr => tr.PostingDate);