当前位置: 首页 > 编程语言 > C#

SQLiteEntityFramework6提供程序如何处理Guid?

时间:2023-04-11 03:33:26 C#

SQLiteEntityFramework6提供程序如何处理Guid?我正在将我们产品的数据库从另一个支持Guids的产品移植到SQLite。众所周知,SQLite不支持Guid。我已经从我的数据库(首先是数据库)创建了一个实体框架6模型,我需要从C#构建一个查询,该查询将Guid与从代码传递的Guid进行比较。问题是我找不到任何关于SQLiteentity框架提供程序如何处理Guid的文档。网络搜索也找不到对我有用的东西。关于在SQLite中使用实体框架的问题。谁能指出我的文档,或者告诉我如何在带有EF6模型的SQLite数据库中使用Guids?似乎这在1.0.95中已修复,但在1.0.97中又被破坏了。解决方案是将连接字符串上的BinaryGUID属性设置为true并设置以下环境变量(在建立连接之前)Environment.SetEnvironmentVariable("AppendManifestToken_SQLiteProviderManifest",";BinaryGUID=true;");数据源=c:mydb.db;版本=3;二进制GUID=真;https://www.connectionstrings.com/sqlite/我终于得到了这个问题的答案。我的问题是SQLiteEntityFramework6提供程序没有正确处理SQL代码中的文字Guid。也就是说,形式为context.MyEntity.Where(x=>x.GuidColumn==newGuid("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"))的Linq表达式被转换为以下SQL:SELECTGuidColumn,Column1,列2,...ColumnnFROMMyEntityASExtent1WHEREExtent1.GuidColumn='xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"这是错误的,因为列中存储的值是一个字节数组。根据这个问题报告,结果是SQLite团队认为这是提供程序中的一个错误,他们正在努力在1.0.95.0版本中修复它。我不知道什么时候会发布,但至少他们认为这是一个问题并且会修复以上就是C#学习教程:SQLiteEntityFramework6providerHowdoestheSQLiteEntityFramework6providerhandleGuids?所有内容分享,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注吧——本文来自网络合集,不代表站队,如涉及侵权,请点击右侧联系管理员删除,如需转载请注明出处: