gpt4 book ai didi

c# - 为什么在使用 Guid.Parse() 方法时抛出异常?

转载 作者:太空狗 更新时间:2023-10-29 17:43:06 27 4
gpt4 key购买 nike

我正在使用一个 WebApi 应用程序,我在其中编写了一个使用以下代码获取 Student 的方法:

    public Student GetStudent(string studentId)
{
var student = this.context.Students.FirstOrDefault(x => x.Id == Guid.Parse(studentId));
return student;
}

此处的 studentId 是从 WebApi 调用中获取的。但是当我试图运行这个应用程序时,它抛出了一个异常:

Additional information: LINQ to Entities does not recognize the method 'System.Guid Parse(System.String)' method, and this method cannot be translated into a store expression.

有没有人告诉我为什么会发生这种情况,我该如何解决这个问题?

最佳答案

首先,当您使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com