gpt4 book ai didi

c# - EF6 无法识别的 Guid 格式。在尝试在集合中查找时

转载 作者:行者123 更新时间:2023-11-29 15:28:21 25 4
gpt4 key购买 nike

我遇到了“无法识别的 Guid 格式”的问题。同时尝试查找集合中的数据。应用程序可与 .Net 4.5 和 EF6 配合使用。自从我们从 MsSql 切换到 MySql Db 以来,我就遇到了这个问题。

实体看起来像:

public abstract class DomainEntity(){
public Guid Id { get; protected set; };
public bool IsActive { get; protected set; }
public DateTime CreateTime { get; set; }
public DateTime ModifyTime { get; set; }
}

数据库表如下所示:

CREATE TABLE IF NOT EXISTS `MssDocumentsDb`.`dbo_Versionings` (
`Id` CHAR(36) UNIQUE NOT NULL,
`IsActive` TINYINT(1) NOT NULL DEFAULT 1,
`CreateTime` DATETIME(6) NOT NULL,
`ModifyTime` DATETIME(6) NOT NULL,
PRIMARY KEY (`Id`));

大多数数据都能正常工作,但有时我会遇到“无法识别的 Guid 格式”的问题。

主要发生错误的地方如下:

public virtual TEntity Get(Guid Id)
=> Id != Guid.Empty ? GetSet().Find(Id) : null;

创建集合:

public IDbSet<TEntity> CreateSet<TEntity>()
where TEntity : class => base.Set<TEntity>();

我尝试了不同的解决方案来解决这个问题。尝试将 db 中的 Id 从 CHAR(36) 切换为 varchar(64),传递 Id.ToSting() 或将 'Old Guids=true' 添加到连接字符串,但没有结果。

感谢您的帮助。

最佳答案

非常感谢@mjwills寻求帮助找出问题所在。

我的主要问题是 Id 数据。从MsSql迁移到Mysql后,一些Id被作为空字符串导入,否则在mssql中它们被存储为null。更新 ids 数据后(在 id = '' 处设置 null),一切正常。

关于c# - EF6 无法识别的 Guid 格式。在尝试在集合中查找时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58913597/

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