当前位置:  开发笔记 > 编程语言 > 正文

是否可以为EF 6的Guid数据类型实现.Equals?

如何解决《是否可以为EF6的Guid数据类型实现.Equals?》经验,为你挑选了1个好方法。

我不想使用'==',我想使用.Equals,这将允许我用泛型做一些更复杂的东西.

至少我希望能够在不获取NotSupportedException的情况下执行此查询.我想实现.Equals与Guid一起工作就像它适用于原始类型,如int,bool和string.我已经用NHibernate做了类似的事情来实现自定义方法来构建查询,我希望能够对EF做同样的事情.

var id = Guid.NewGuid();
_dbContext.MyEntityType.Single(x => x.Id.Equals(id));

Servy.. 5

Guid 确实Equals已经实现了一个方法.在这种情况下,它的EF不支持将您的特定用法转换为SQL,因此除非您计划编写自己的查询提供程序,否则无法让它理解如何翻译该代码.所有你不能写出它不知道如何变成SQL ==的表达式,在这种情况下意味着在你的表达式中写入(如果那是EF知道如何翻译)而不是Equals.



1> Servy..:

Guid 确实Equals已经实现了一个方法.在这种情况下,它的EF不支持将您的特定用法转换为SQL,因此除非您计划编写自己的查询提供程序,否则无法让它理解如何翻译该代码.所有你不能写出它不知道如何变成SQL ==的表达式,在这种情况下意味着在你的表达式中写入(如果那是EF知道如何翻译)而不是Equals.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有