我将我们产品的数据库从另一个支持Guid的产品移植到SQLite。据我们所知,SQLite不支持Guid。我已经从我的数据库(数据库第一)创建了一个实体框架6模型,我需要从C#构建一个查询,将Guid与从代码传递的一个进行比较。SQLite实体框架6提供程序如何处理Guid?
事情是我找不到关于SQLite实体框架提供程序如何处理Guid的任何文档。网络搜索也没有发现对我有用的东西。只是关于在SQLite中使用Entity Framework的问题。
任何人都可以指向我的文档,或者可以告诉我如何通过EF6模型在SQLite数据库中使用Guids?
SQLite没有一个明确的列类型GUID,但它们存储类型亲和力'BLOB'工作完全正常。不太了解实体框架,但似乎类型转换器(超出枚举)将只在EF 7中。但GUID从字节数组等等,因此它可能是非常简单的。 – peterchen 2014-12-03 18:45:47
我将它们作为BLOB存储在我的模型中,但是,我遇到了问题。该代码具有类似于“ID == Guid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')的表达式,因为数据库中ID的类型是”Byte []“而引发异常,右侧是是一个'Guid',有问题的代码必须在我们的客户端(我正在使用的代码)上运行SQLite,并且在我们的服务器上,数据库是SQL Server的表达式字符串不能改变。在SQLite端做一些比较工作,我只是不知道是什么,这就是为什么我在寻找文档。 – 2014-12-03 18:54:13
在SQLite中,你可以覆盖Guid()函数:https:// www。 sqlite.org/c3ref/create_function.html(不知道如何通过EF工作) – peterchen 2014-12-03 19:52:51