2011-04-20 42 views
0

我有這段代碼從數據庫中獲取我的所有baobjectCode。爲什麼我無法在我的asp.net mvc應用程序中使用Linq獲取此代碼?

var maxCode = variables.Where(w => w.code.StartsWith(prefix) && w.code.Length == length) 
     .OrderByDescending(o => o.code).Select(s => s.code).FirstOrDefault(); 
} 

我在這個maxcode查詢gettting生成錯誤。

錯誤8「字串」不包含「代碼」和沒有擴展方法「代碼」接受類型「字符串」的第一個參數的定義可以找到(是否缺少using指令或程序集引用?)
任何人都可以幫我解決爲什麼我得到這個錯誤?有什麼我在這裏做錯了嗎?

回答

2

你在你的第一條語句選擇BaObject.BaObjectCode列表,這樣variables是字符串

.Select(w => w.BaObjectCode).ToList(); 

的類型,你應該在你的最後一條語句做

var maxCode = variables.Where(w => w.StartsWith(prefix) && w.Length == length) 
    .OrderByDescending(o => o).FirstOrDefault(); 

。選擇是沒有必要的,可以將其刪除

+0

那麼我需要更改代碼archil,謝謝 – user300485 2011-04-20 14:50:12

+0

感謝Archil,我需要如何處理orderby desc?並選擇?謝謝 – user300485 2011-04-20 14:54:08

+0

查看我對OrderByDescending部分的回答以及在最後一行中正確使用FirstOrDefault。 – 2011-04-20 15:06:08

1

添加

.OrderByDescending() 

前.ToList()上的第一行,然後替換最後一行:

var maxCode = variables.FirstOrDefault(w => w.StartsWith(prefix) && w.Length == length); 

這應該使其工作。

相關問題