我正在使用 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/

10-16 13:46