2012-12-08 75 views
0

下面是該查詢字符串轉換爲在LINQ查詢詮釋

db.setupBrands.Where(x => 
    Convert.ToInt32(x.SortKey) <= id && 
    Convert.ToInt32(x.SortKey) >= desID) 
.Select(x => x); 

這裏SORTKEY是字符串類型我想轉換爲int。在Convert.ToInt32()我得到以下錯誤。

LINQ to Entities無法識別方法'Int32 ToInt32(System.String)'方法,並且此方法無法轉換爲存儲表達式。

+1

出於興趣,如果你的'SortKey'屬性始終是一個整數,你爲什麼把它作爲一個字符串你架構? –

+0

SortKey是字符串類型... @Jon Skeet –

+1

是的,我可以說。我的觀點是*爲什麼*?如果它總是有一個數字值,爲什麼不在模式中使它成爲一個整數? –

回答

2

EF無法轉換Convert和Parse。我完全同意上述,但是,如果你的SORTKEY是​​你可以試試這個:

string s_id = string.Format("{0:0000}", id); 
string s_desID = string.Format("{0:0000}", desID); 

db.setupBrands.Where(x => 
    x.SortKey <= s_id && 
    x.SortKey >= s_desID) 
.Select(x => x);