我正在使用EF4.0并定义了一个函数import来返回一个在我的存储过程上建模的复杂类型。我可以执行存储过程正常并正确地恢复我的结果并且我的所有过滤器都工作,除了1。
result = result.Where(item => item.LANID == filter.LanId);
调试器中filter.LandId的值是“HO \\ UserX”,但Text Visualizer告诉我实际值是“HO \ UserX”(这是正确的,应该是什么)。存储过程返回的LANID列也包含该确切值(“HO \ UserX”),但是在我的位置之后,结果计数为0。
有谁知道EF正在做什么来过滤这个列表,为什么这个特殊的过滤器搞砸了?我假设有些东西被错误地转义,但我无法弄清楚是什么或在哪里。
任何提示都将不胜感激。
答案 0 :(得分:0)
result
是存储过程的结果,则表示所有实体都已加载到您的应用程序,并且过滤由Linq到对象完成。调试器会向您显示\\
,因为\
是转义序列的特殊字符,因此如果您想在字符串中使用\
字符,则必须对其进行转义\\
。