【问题标题】:Cant seem to convert int to a string within linq expression [duplicate]似乎无法将 int 转换为 linq 表达式中的字符串 [重复]
【发布时间】:2018-06-23 00:15:18
【问题描述】:

我在以下过程中收到以下错误

public Patient getPatientByPatientId(int PatientID)
{
    Patient patient = new Patient();
    if (PatientID == -1)
    {
       patient = new Patient();
    }
     else
    {
       using (var myContext = new SMBASchedulerEntities(this.Connectionstring))
        {
                patient = myContext.Patients
               .Where(w => w.PatientID == Convert.ToString(PatientID)).FirstOrDefault();
         }
        }
        return patient;
}

错误是

发生了“System.NotSupportedException”类型的未处理异常 在 EntityFramework.SqlServer.dll 中

附加信息:LINQ to Entities 无法识别该方法 'System.String ToString(Int32)' 方法,而这个方法不能 翻译成商店表达式。

【问题讨论】:

  • 改用PatientID.ToString()
  • 你的Patient.PatientID 是一个字符串?

标签: c# entity-framework linq


【解决方案1】:

转换你的代码

patient = myContext.Patients.Where(w => w.PatientID == Convert.ToString(PatientID)).FirstOrDefault();

patient = myContext.Patients.Where(w => w.PatientID ==PatientId.ToString()).FirstOrDefault();

上面的查询假设PatientIdString

但错误提示 LINQ to Entities does not recognize the method 'System.String ToString(**Int32**)' method

表示PatientIdInt

那就试试下面的代码

patient = myContext.Patients.Where(w => w.PatientID ==PatientId).FirstOrDefault();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 2019-10-23
    • 1970-01-01
    • 2017-01-31
    相关资源
    最近更新 更多