gpt4 book ai didi

c# - 带有 Entity Framework 的 MySql 连接器 : Comparing Char(36) GUIDs in a LINQ Where clause

转载 作者:行者123 更新时间:2023-11-29 14:47:37 25 4
gpt4 key购买 nike

我认为标题很能说明问题。

我在 MySql 表中使用 Char(36),在使用 Entity Framework 时该表会自动识别为 GUID。

插入 GUID 没有问题,但尝试在 WHERE 子句中比较它是一场噩梦。

我尝试过的:

首先,我尝试了WHERE element.GUID == GuidToCompare

这导致 LINQ to Entities 无法识别“System.Object CompareObjectEqual(System.Object, System.Object, Boolean)”方法,并且该方法无法转换为存储表达式。

然后我尝试将值转换为字符串,如下所示:

WHERE element.GUID.ToString() == GuidtoCompare.ToString()

这导致了此错误:LINQ to Entities 无法识别“System.String ToString()”方法,并且此方法无法转换为存储表达式。

所以无论哪种方式,我都无法比较它们。如果 GUID 不起作用,我准备不再使用它们。

最佳答案

我知道出了什么问题:这只是我自己犯的一个愚蠢的错误。

比较指南的事情是非常正确的,这不是给出错误的部分。实际上,同一 LINQ 查询的后续部分引发了错误。它比较ProviderUserKey (Object)ID (int)ProviderUserKey本质上是一个 int,我只需明确声明它的类型(VB.NET 中的 CType(Object, Integer) 或 C# 中的 (int)Object)

关于c# - 带有 Entity Framework 的 MySql 连接器 : Comparing Char(36) GUIDs in a LINQ Where clause,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6582526/

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