cod*_*unk 9 c# linq entity-framework asp.net-web-api
我正在使用WebApi应用程序,我在其中编写了一个方法来使用以下代码获取学生:
public Student GetStudent(string studentId)
{
var student = this.context.Students.FirstOrDefault(x => x.Id == Guid.Parse(studentId));
return student;
}
Run Code Online (Sandbox Code Playgroud)
这里studentId来自WebApi电话.但是,当我尝试运行此应用程序时,它会抛出一个异常,例如:
附加信息:LINQ to Entities无法识别方法'System.Guid Parse(System.String)'方法,并且此方法无法转换为存储表达式.
有没有人告诉我为什么会这样,我该如何解决这个问题?
Mai*_*nul 11
首先,当你使用EntityFramework它时,它会尝试将Guid.Parse()方法转换为SQL,但它无法做到这一点,因为它无法转换为SQL语句/'store expression'.
您应该只将字符串解析移出存储表达式,并Guid在查询中使用它之前将字符串解析为value.
public Student GetStudent(string studentId)
{
var stdId = Guid.Parse(studentId);
var student = this.context.Students.FirstOrDefault(x => x.Id == stdId);
return student;
}
Run Code Online (Sandbox Code Playgroud)