在针对LINID for NHibernate的linq表达式的where部分执行字符串比较时遇到问题。
from x in NhibernateObject
where x.StringCol = "value"
select x
运行时会重新启动有关强制转换为整数的运行时错误。我在http://jason.pettys.name/archive/2009/09/28/nhibernate-with-linq-error-with-string-comparisons-in-vb.net.aspx
找到了关于问题和解决方案的好文章但我的问题是什么是“访问者”,我会写什么代码来实现上面帖子中突出显示的解决方案 - 错过了这里的链接!!!
答案 0 :(得分:1)
访客是一种设计模式。您可以在http://www.dofactory.com/Patterns/PatternVisitor.aspx或此处http://en.wikipedia.org/wiki/Visitor_pattern
找到相关说明如果我正确理解您链接的文章(尚未完全阅读),则需要更改NHibernate以解决此问题。
答案 1 :(得分:0)
访问者模式的定义是:“表示要对对象结构的元素执行的操作。访问者允许您定义新的 操作时不改变操作元素的类。“
您要更改的访问者的名称空间是NHibernate.Linq.Visitors。使用VB而不是使用NHibernate.Linq的C#可能会遇到更多困难,因为VB3不支持c#3所做的一切。如果您使用.Net 4.0(或当然是c#)
,这些问题将得到解决