我正在使用 WebApi 应用程序,我在其中编写了使用以下代码获取 Student 的方法:
public Student GetStudent(string studentId)
{
var student = this.context.Students.FirstOrDefault(x => x.Id == Guid.Parse(studentId));
return student;
}
这里的 studentId 是从 WebApi 调用中获取的。但是,当我尝试运行此应用程序时,它会引发如下异常:
有没有人告诉我为什么会发生这种情况,我该如何解决这个问题?
最佳答案
首先,当您使用 EntityFramework
时,它会尝试将 Guid.Parse()
方法转换为 SQL,但由于无法转换为 SQL 语句/“存储表达式”,因此无法执行此操作。
您应该将字符串解析移出存储表达式并将字符串解析为 Guid
值,然后再在查询中使用它。
public Student GetStudent(string studentId)
{
var stdId = Guid.Parse(studentId);
var student = this.context.Students.FirstOrDefault(x => x.Id == stdId);
return student;
}
关于c# - 为什么在使用 Guid.Parse() 方法时抛出异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35402919/