【发布时间】:2018-09-01 00:20:07
【问题描述】:
谁能帮我解决以下错误?
LINQ to Entities 无法识别方法 'Int32 Int32(System.String)' 方法,该方法不能翻译 到商店表达式中。
以下是我的代码,我正在尝试多种方法来修复此错误,但我没有成功:
public IEnumerable<Dia1> GetPendenciasByUser(int centroId)
{
var query = Db.Dia1S
.Join(Db.Cadastros, dia1 => dia1.PatientId, cad => cad.PatientId, (dia1, cad) => new { dia1, cad })
.Join(Db.Randomizacao, dia1 => dia1.dia1.PatientId, rand => rand.PatientId, (dia1, rand) => new { dia1, rand })
.Where(s => s.dia1.dia1.dtd1 == null ? (Convert.ToInt32(DateTime.Now - s.rand.RandomizacaoData)) > 1 : (Convert.ToInt32(Convert.ToDateTime(s.dia1.dia1.dtd1) - s.rand.RandomizacaoData)) > 1 )
.Select(s => s.dia1.dia1)
.ToList();
return query;
}
【问题讨论】:
-
@4castle 对不起,我已经翻译成英文了。
-
Convert.ToInt32无法转换为 SQL。 -
不是复制贵的朋友
-
这在什么方面不是重复的?不要简单地断言它不是,给出一个理由或用额外的信息编辑你的问题来区分它。它在我看来确实是重复的。
-
您的错误表明 int32.ToInt32(在您的情况下精确:Convert.ToInt32,归结为相同)在 LinqToEntities 中不受支持。这正是链接(可能)重复中提到的内容
标签: c# asp.net-mvc linq-to-entities