以下是我的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和test 2是字符串变量,包含单个字符,如N或Y或J. 现在我想将k.Name的第一个字母与test1进行比较。
将test2与k.Name中第二个单词的First Alphabet进行比较。
假设纽约是数据库列中的值。
TEST1 = N
TEST2 = Y
k.Name =纽约
现在它应该将N与第一个字母表New和Y与第一个York字母进行比较。 为了达到这个目的,我必须得到Space之后的第一个角色。
这就是我的尝试,
test = from k in db.CityTable
where k.CityName.Substring(0,1)== test1 && k.CityName.Substring(k.CityName.IndexOf(' '),1) == test2
select k.CityName;
但是在这个查询中我得到了异常
base {System.SystemException} = {“LINQ to Entities无法识别 方法'Int32 IndexOf(Char)'方法,而且这个方法不能 翻译成商店表达。“}
我怎样才能实现这个目标?
答案 0 :(得分:2)
考虑尝试IndexOf(" ")
,这也可能更好IndexOf(string.Empty)
,请检查String.IndexOf(substring)。
where k.CityName.Substring(0,1)== test1 && k.CityName.Substring(k.CityName.IndexOf(" "),1) == test2