c# - 从数据库获取Guid

标签 c# mysql linq entity-framework

发生了一些奇怪的事情,我无法再使用 .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/

相关文章:

c# - 在 RDotNet.dll 中发生类型为 'System.StackOverflowException' 的未处理异常以在 Web 应用程序中加载 R 库

php - utf8表中插入奇怪的字符

MySQL 无法启动 - 错误 : su: warning: cannot change directory to/nonexistent: No such file or directory

php - Mysql事务: commit and rollback

c# - LINQ-to-SQL 连接中的 DefaultIfEmpty 导致重复

c# - Linq groupby 和 sum

c# - 如何关闭当前浏览器窗口并重定向到同一浏览器先前打开的窗口

c# - 在 Web Api 2 中启用 CORS

c# - 使用 Linq 在 BindingList<T> 中搜索

c# - SQLite 错误没有这样的列使用 Entity Framework