在我的Person表中,我有一个名为ps_fullname的字段,其中包含..well人的全名。 在我的aspx页面中,我有一个搜索框可以按名称筛选人物。只要我输入一个名字,它就可以正常工作。 ( 一个词)。如果我输入两个名字(名字lastname),结果为零。从linq c中包含全名的字段中搜索名字和姓氏#
这里是我的LINQ语句
string[] namelist = txtName.text.Split(' ');
DatabaseContext db = new DatabaseContext();
var query = (from person in db.People
where
(dhaaira == 0 ? true : (dhaaira == null ? person.ps_default_dhaaira_id == null : person.ps_default_dhaaira_id == dhaaira)) &&
(atoll == 0 ? true : (atoll == null ? person.PAddress.Island.il_atoll_id == null : person.PAddress.Island.il_atoll_id == atoll)) &&
(island == 0 ? true : (island == null ? person.PAddress.ad_island_id == null : person.PAddress.ad_island_id == island)) &&
(address == 0 ? true : (address == null ? person.ps_p_add_id == null : person.ps_p_add_id == address)) &&
(string.IsNullOrEmpty(nic) ? true : person.ps_nic.Trim().ToLower() == nic.Trim().ToLower()) &&
(string.IsNullOrEmpty(name) ? true : (namelist.All(n => person.ps_fullname.ToLower().Contains(n.ToLower()))))
// orderby orderBy
orderby person.PAddress.ad_island_id, person.ps_p_add_id, person.ps_fullname
select person).Skip(startRowIndex).Take(maximumRows).ToList();
我到底做错了什么?如果这太混乱了,你可以举一个简单的例子,我可以使用多个词来过滤字符串字段。
什么是你需要搜索?名字+姓氏或根据用户输入搜索名字或姓氏 –
。如果用户只输入'john',我希望所有拥有'john'的人都是全名。 如果输入是'john jill',我希望所有拥有'john'和'jill'全名的人。 – user3128658
您在where子句中有很多检查,请检查它是否通过了此场景。 –