NHibernate 3.1 Query等于

时间:2011-03-18 07:59:35

标签: c# linq nhibernate equals

我刚从NHibernate 2.1更新到NHibernate 3.1。我发现使用Linq的equals运算符没有实现其他类型的字符串。
我在互联网上找到article来解决这个问题。这适用于基本类型,但现在我想比较一个自定义实体,我无法让它工作。

我尝试了一些实现但没有工作:

ReflectionHelper.GetMethodDefinition<CustomEntity>(x => x.Equals(<CustomEntity>(0)))  
ReflectionHelper.GetMethodDefinition<CustomEntity>(x => x.Equals(typeof(CustomEntity))

我想要执行的查询如下:

Session.Query<SomeEntity>().Where(x => x.CustomEntity.Equals(CustomEntity);

如何扩展equals以允许此操作而不是获取NotSupportedException?

1 个答案:

答案 0 :(得分:3)

.Equals方法无法转换为SQL,当您执行Query&lt;&gt;()方法时,系统会执行该操作。尝试使用这样的等式:

Session.Query<SomeEntity>().Where(x => x.CustomEntity.Id == CustomEntity.Id);