从数据库获取Guid

时间:2015-05-29 20:16:10

标签: c# mysql linq entity-framework

发生了一些奇怪的事情,我无法再使用.net实体模型从我的mysql数据库中获取GUID类型。

前一段时间我创建了一个使用Guid&ID作为ID的数据库。我使用实体框架创建了与此数据库的连接,一切正常。

但是我不久前丢失了数据库,我不得不再次创建它,但是现在,实体框架模型创建的类有一个字符串作为ID,而不是以前的GUID。

我需要什么类型才能在我的mysql数据库中创建我的ID,所以我可以简单地执行以下操作:

Image.ID = Guid.NewGuid();
EntityModel.Image.Add(Image);
EntityModel.SaveChanges();

这曾经工作正常,现在我(显然)得到一个错误:"无法隐式转换类型' System.Guid'到'字符串'"

我不记得曾经这样做过,我想知道这里的人是否可以提供帮助。 我确实读过UUID(),但那不是我做的。 不知怎的,我已经感觉到mysql的更新感觉,不知怎的,它已经不再可能了,但这对我来说似乎很奇怪。

我确实调查了这一点,看到很多人建议将id作为mysql中的二进制类型并将Guid转换为它的二进制形式并存储它。我希望不要写一个转换类来隐式地将Guid强制转换为Binary ......

1 个答案:

答案 0 :(得分:2)

二进制(16)应该使用较新的连接器,如果你使用' Old Guids = true',否则它想使用char(36)