2010-12-03 49 views
0

我不得不intvarchar比较LINQ查询LINQ功能上型转换失败

soemthing = Lookups.Where(Function(lookupToSearch) lookupToSearch.ServiceFeature = 
CONST_ServiceFeature_EventLog And _ 
lookupToSearch.Name = CONST_ActivityTypeLookup_Name And _ 
lookupToSearch.Value = type.ToString()).FirstOrDefault.EntityKey 

lookupToSearch.Valuevarchar typeenum

一些在lookuptosearch值都字母和它们未能转换为int

考虑到我无法更改混合字母和数字的数据,解决此问题的最佳方法是什么?

回答

0

我不确定,但从您的代码,我猜数据库不支持“类型”变量的数据类型,也不是它转换为字符串。所以我的建议是在查询数据库之前将类型var转换为字符串,并将lookupToSearch.Value与表示type.ToString()的字符串变量进行比较。

Dim str as String 
str = type.ToString() 
soemthing = Lookups.Where(Function(lookupToSearch) lookupToSearch.ServiceFeature = 
CONST_ServiceFeature_EventLog And _ 
lookupToSearch.Name = CONST_ActivityTypeLookup_Name And _ 
lookupToSearch.Value = str).FirstOrDefault.EntityKey 
+0

工作表示感谢。我尝试了像ToString()像lookupToSearch.Value = type.ToString(),它返回一个错误。关于空对象的东西。 – Tigran 2010-12-04 16:28:13