2011-10-11 44 views
1
var lastitem = Contacts 
.OrderByDescending(c => c.ContactID) 
.Take(1).Select(p=>p.ContactID); 

lastitem是,即使單個項目返回DBQuery<Int32>如何轉換的DBQuery <>(或的ObjectQuery <>)到非收集基本類型(即:整型,字符串)

有一種將其轉換爲純粹的Int32的方法?

感謝您的幫助!

ALSO:

有沒有更好的方法來做到這一點?基本上,我試圖從非常最後一個項目從使用ContactID得到Int32型數據庫

+0

hmm ..所以從下面的答案和仔細觀察intellisense ..Select()返回一個IQueryable,即使它是一個單一的項目。這就是爲什麼它不起作用。所以使用.First(),它會返回一個Queryable,它可以轉換爲int .. –

回答

2

你想.First()內(如果爲空拋出)或.FirstOrDefault()(返回0如果爲空,或者如果添加.Cast<int?()第一空):

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

您是否打算在代碼片段中使用Last()? –

+0

@AnthonyPegram:是的;他想要最後一個項目。 – SLaks

+0

但它被標記爲EF,並且不支持該概念。 'OrderByDescending(...)。First()'是要走的路。而你的文本會說'First',但是你的代碼片段會變成'Last',這首先是我問的問題。 –

相關問題