【发布时间】:2015-11-01 14:21:25
【问题描述】:
我试图找出导致问题的原因
LINQ to Entities 无法识别方法 'Int16 Parse(System.String)' 方法,并且该方法无法转换为存储表达式
当执行达到if 条件时会发生错误。 if (query.Any()) 行抛出异常,我不知道为什么。你能发现问题吗?
我的查询:
var query = from clt in vclt.cltpar
join p in vclt.profession //left join
on clt.no_prof equals p.no_prof
into temp
from prof in temp.DefaultIfEmpty()
where
clt.no_pays == short.Parse(no_pays) &&
clt.tp_pid == tp_pid &&
clt.no_pid == no_pid &&
clt.no_seq == short.Parse(no_seq)
select new
{
clt.no_pays,
clt.tp_pid,
clt.no_pid,
clt.no_seq,
dt_cre = clt.dat_nais,
DesigClt = vclt.get_nompren(clt.no_pays, clt.tp_pid, clt.no_pid, clt.no_seq).ToString(),
AdrClt = prtf.adresseclt(clt.no_pays, clt.tp_pid, clt.no_pid, clt.no_seq).ToString(),
CodRisque = vclt.get_coderisque(clt.no_pays, clt.tp_pid, clt.no_pid, clt.no_seq).ToString(),
FormeJur = "",
Secteur = prof.lib_prof,
Registre = "",
MatFisc = "",
NumTeleph = prtf.get_numtel(clt.no_pays, clt.tp_pid, clt.no_pid, clt.no_seq).ToString(),
DateDebRel = ogcc.get_datdebrel(clt.no_pays, clt.tp_pid, clt.no_pid, clt.no_seq).ToString(),
RNE = "",
cd_dou = "0"
};
if (query.Any())
{
stuff here
}
更新 我按照告诉我在查询之外进行了如下转换
short n_pays = short.Parse(no_pays.ToString());
short n_seq = short.Parse(no_seq.ToString());
但是这会引发一个即使我使用ToString()
【问题讨论】:
-
而
stacktrace的例外是..? -
你检查过这个线程stackoverflow.com/questions/13887296/…吗?
标签: c# linq linq-to-sql asp.net-mvc-5