如何对字符串进行区间查询?
documentNumber为string类型:
数据为:
201509001
201509002
201509003
201511001
201511002
201511003
201511004
.....
如何查询201509003-201511002之间的记录。
我的想法是通过转为数值来处理,做法如下:
var result = (from a in db_OA.VehicleMaintenanceRecords
join b in db_OA.VehicleDatas on a.licensePlate equals b.licensePlate
join c in db_OA.PayoffTables on a.documentNumber equals c.documentNumber
into Grp
from grp in Grp.DefaultIfEmpty()
where (grp.receiptDate == null || a.leaveFactoryDate == null)
orderby a.documentNumber descending
select new
{
documentNumber = int.Parse(a.documentNumber),//单号为:string类型
licensePlate = b.licensePlate,//车牌号
vehicleOwner = b.vehicleOwner,//车主
registrationDate = a.registrationDate,//登记(进厂)日期
twoLevelMaintenance = a.twoLevelMaintenance,//二保
maintenanceProject = a.maintenanceProject,//检查项目
materialCost = db_OA.OutRecordTBs.Where(n => n.documentNumber == a.documentNumber).Sum(n => n.sellingPrice.HasValue ? n.sellingPrice * n.outNumber : 0),//配件金额
settlementMark = db_OA.PayoffTables.Any(n => n.documentNumber == a.documentNumber),//结算
manHourCost = db_OA.PayoffTables.FirstOrDefault(n => n.documentNumber == a.documentNumber).manHourCost,//工时费
leaveFactoryDate = a.leaveFactoryDate,//出厂日期
collectionAmount = grp.collectionAmount//收款金额
}).ToList();
var orderList = result.Where(p => p.documentNumber >= s_documentNumber && p.documentNumber >= e_documentNumber);
错误提示为:
LINQ to Entities does not recognize the method 'Int32 Parse(System.String)' method, and this method cannot be translated into a store expression.
请高人指点。谢谢
我的QQ:191971159