如何转换DBQuery<> (或ObjectQuery<>)到非集合基元类型(即:int,string)

时间:2011-10-11 22:59:32

标签: linq entity-framework

var lastitem = Contacts
.OrderByDescending(c => c.ContactID)
.Take(1).Select(p=>p.ContactID);

lastitem即使单个项目返回DBQuery<Int32>

也是如此

有没有办法将它转换为纯Int32

感谢您的帮助!

ALSO:

有更好的方法吗?基本上,我试图从数据库中最后一个项目的ContactID获取Int32类型

1 个答案:

答案 0 :(得分:2)

您希望.First()(如果为空则抛出)或.FirstOrDefault()(如果为空,则返回0;如果先添加.Cast<int?(),则返回null):

int lastitem = Contacts.OrderByDescending(c => c.ContactID)
                       .Select(c => c.ContactID)
                       .First();