发生了一些奇怪的事情,我无法再使用 .net 实体模型从 mysql 数据库获取 GUID 类型。
不久前,我创建了一个使用 Guid 作为 ID 的数据库。我使用 Entity Framework 创建了与该数据库的连接,一切正常。
但是我不久前丢失了数据库,不得不重新创建它,但是现在, Entity Framework 模型创建的类有一个字符串作为 ID,而不是以前的 GUID。
我需要在 mysql 数据库中创建什么类型的 ID,以便我可以简单地执行以下操作:
Image.ID = Guid.NewGuid();
EntityModel.Image.Add(Image);
EntityModel.SaveChanges();
这曾经工作正常,现在我(显然)收到错误:“无法将类型‘System.Guid’隐式转换为‘字符串’”
我不记得我曾经是怎么做到的,想知道这里的人是否可以提供帮助。 我确实读过有关 UUID() 的内容,但我不是这样做的。 不知怎的,我感觉 mysql 更新了,不知怎的,它不再可能了,但这对我来说似乎很奇怪。
我确实对此进行了研究,看到很多人建议在 mysql 中将 id 设置为二进制类型,并将 Guid 转换为二进制形式并存储它。我希望不要编写一个转换类来隐式地将 Guid 转换为 Binary...
最佳答案
如果您使用“Old Guids=true”,Binary(16) 应该与较新的连接器一起使用,否则它将使用 char(36)
关于c# - 从数据库获取Guid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30538330/