嘛 事情發生是這樣的 由於生成卡號太長(900038080205489 這種) 又要判斷某卡號位於某個區間 再去判斷機構
一開始很天真的直接按照慣性思維來寫
query = query.Where(x=>x.Code>=MinCode && x.Code<MaxCode);
結果出問題了 2333
因為這裡我把卡號當做int型別的去做大小判斷結果報錯
按理來說應該用long型別 6位數以下的兩者沒區別 但是超過6位就不行了
資料範圍不一樣
int -2^31~2^31-1
long long -2^63~^63-1
所以後期處理的辦法是這樣的
query = query.Where(x => x.Code.CompareTo(EndCode) >= 0 && x.Code.CompareTo(MaxCode) <= 0);
這裡CompareTo是字串的比較方法
當a>b的時候a.CompareTo(b) == 1
當a=b的時候a.CompareTo(b) == 0
當a<b的時候a.CompareTo(b) == -1