2009-10-05 83 views
1

我传递一个填充的SelectList到我的视图,我想默认选择的值到列表中的最后的记录。到目前为止,我已经有了:如何获取通用列表中的最后一个对象?

IQueryable<BuildNumber> projBuildNos = tcRepository.GetProjectBuildNos(); 
BuildList = new SelectList(projBuildNos, "ID", "value", projBuildNos.Last().ID); 

我得到一个异常说“查询操作‘最后’不支持,但我似乎无法在最后一条记录在我的泛型列表获得,并不能找到任何示例

此代码是从“表单视图模型”传递选择列表从我的存储库返回到视图,我想我应该在这里执行此操作,但我是泛型/ mvc/linq新手,所以我对于替代建议感到高兴

在此先感谢您的任何帮助请让我知道,如果您想要更多信息,请联系我

回答

5

你是否已经将所有查询结果吸引到内存中?如果是的话,我建议你执行你的查询,得到的结果到一个列表:

List<BuildNumber> projBuildNos = tcRepository.GetProjectBuildNos().ToList(); 
BuildList = new SelectList(projBuildNos, "ID", "value", projBuildNos.Last().ID); 

否则,你可以很容易地与执行两次查询解决方法结束了 - 可能给不一致的结果。

+0

是的,我正在填充SelectList,所以我使用了所有的结果集。这就是诀窍,欢呼! – daddywoodland 2009-10-05 16:50:58

0

也许这样?

projBuildNos.Reverse().First().ID 
1

,我发现这个MSDN上:

Queryable.LastOrDefault - 如果序列不包含任何元素返回序列的最后一个元素,或默认值。

+0

这可能涉及到另一个调用数据库?如果是这样,我想我已经得到了所有的数据,所以只想抓住最后一个值。 – daddywoodland 2009-10-05 16:55:31

相关问题