我正在努力为此问题找到解决方法。 LINQ to Entities不允许使用ToString()方法
我正在尝试使用以下查询
return (from buy in context.ContractBuys
where (buy.DealerNo.Value.ToString().StartsWith(dlrNo)) &&
(buy.CreationDate >= createDateFrom) && (buy.CreationDate <= createDateTo)
select buy).ToList();
dlrNo是一种字符串类型。但是buy.DealerNo是C#中的Nullable int。 我可以使用Like运算符吗?
答案 0 :(得分:0)
由于经销商编号显然由几个部分组成(因为你只是想看看数字的开头),它应该是一个字符串而不是一个int,因为毕竟它不是真的单个数字(或者您可以将其拆分为单独的列)。但是,如果所有数字的长度相同,则可以通过10的幂来执行整数除法。例如,如果所有数字都是七位数,并且您想要查看前三个数字,除以10000. dlrNo
应该在查询之前被解析为int。
int dlrNoAsInt = int.Parse(dlrNo);
return (from buy in context.ContractBuys
where (buy.DealerNo.Value / 10000 == dlrNoAsInt) && ...;
答案 1 :(得分:0)
可能的解决方法:
var l = (from buy in context.ContractBuys
where
(buy.CreationDate >= createDateFrom) && (buy.CreationDate <= createDateTo)
select buy).ToList();
return l.where(buy => buy.DealerNo.Value.ToString().StartsWith(dlrNo)).toList();