gpt4 book ai didi

.net - 如何将字符串解析为 UNIQUEIDENTIFIER?

转载 作者:行者123 更新时间:2023-12-02 13:14:27 26 4
gpt4 key购买 nike

我正在编写一个 Entity Framework LINQ 查询,其中我想将字符串解析为 UNIQUEIDENTIFIER(又名 GUID),作为 WHERE 子句的一部分:

public IEnumerable<User> Find(Guid guid)
{
return dbContext
.Users
.Where(user => Guid.Parse(user.GuidText) == guid);
}

我知道这在 SQL 中是可能的,因为我已经测试过它:

SELECT *
FROM Users
WHERE CAST(GuidText AS UNIQUEIDENTIFIER) = @guid;

但是,我还没有找到生成 CAST 部分的方法。我试过:

  1. (Guid)user.GuidText,这会生成编译器错误。
  2. Convert.ToGuid(user.GuidText),但此方法不存在。
  3. Guid.Parse(user.GuidText),但这会导致 Entity Framework 在转换 LINQ 查询时生成错误。
  4. new Guid(user.GuidText),但这会导致 Entity Framework 在转换 LINQ 查询时生成错误。
  5. (Guid)Convert.ChangeType(user.GuidText, typeof(Guid)),但这会导致 Entity Framework 在转换 LINQ 查询时生成错误。
  6. SqlGuid.Parse(user.GuidText),但这会导致 Entity Framework 在转换 LINQ 查询时生成错误。

我怎样才能实现这个目标?作为最后的手段,我愿意在代码中嵌入 SQL。

最佳答案

如果您有充分的理由进行转换 - 您可以基于您的用户表创建一个 VIEW 并将您的 GUID 文本转换为 UNIQUEIDENTIFIER

SELECT ..., CAST(GuidText AS UNIQUEIDENTIFIER), ...

除了在代码中引用 View 之外,您应该能够在不进行转换的情况下进行比较

关于.net - 如何将字符串解析为 UNIQUEIDENTIFIER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20062549/

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