2
下面是我的Linq查询如何获得的IndexOf()空格在LINQ查询
var test = from k in db.CityTable
where k.Name.Substring(0,1)== test1 && k.Name.Substring(4,1) == test2
select k.CityName;
在数据库中的表
示例如下所示k.Name会有值:纽约或新泽西州 这里test1和test2是字符串变量,其中包含单个字符,如N或Y或J. 现在我想比较k.Name的第一个字母与test1。
然后比较test2和k.Name中第二个单词的第一个字母。
假设纽约是Database列中的值。
测试1 = N
测试2 = Y
k.Name =纽约
现在应该与第一字母与新和Y的第一字母比较ñ的约克。 为了达到这个目标,我必须得到空间后的第一个字符。
这是我曾经尝试过,
test = from k in db.CityTable
where k.CityName.Substring(0,1)== test1 && k.CityName.Substring(k.CityName.IndexOf(' '),1) == test2
select k.CityName;
但此查询我得到异常
基地{System.SystemException} = {“LINQ到实体不承认 方法'Int32 IndexOf(Char)'方法,并且此方法不能将 翻译为商店表达式。“}
我如何实现这一目标?
你有没有用'的IndexOf尝试(”“)'?你也可以尝试采取'CityTable'的数据在内存中的列表,然后尝试在它这个查询。 – Bastardo 2012-01-27 07:05:02
@RoboLover我的test1和test2将只有数据库中城市的缩写。 是的,我已经尝试IndexOf() – 2012-01-27 07:10:34
你试着用'char'参数'IndexOf',我建议你用'string'参数调用它,请检查我的答案为msdn'IndexOf'示例。 – Bastardo 2012-01-27 07:13:12