我的应用程序中有搜索功能。它的工作方式是,用户拉出一条记录,然后使用搜索按钮将记录中的名字、姓氏和出生日期传递给 LINQ 查询。LINQ 查询应该提供可能的匹配项。现在它提供了太多的结果。我希望出生日期匹配准确,然后名字和姓氏匹配可能有点松散。在一个完美的世界中,结果将是:
- 与 DOB 完全匹配
- 模糊匹配名字
- 接近但不严格匹配姓氏。
例如,如果我要搜索 1974 年 11 月 27 日出生的 James May,我希望得到如下结果:
吉姆 1974 年 11月 27 日
杰克 1974 年 11 月 27 日 詹姆斯 梅福德 1974 年 11 月 27 日
我知道最好的方法是存储过程,但我试过了,每次我将存储的 Proc 添加到我的项目中时,它都会损坏 EDMX 文件,所以我坚持使用 LINQ。
这是我到目前为止所拥有的:
var query = from p in _Elig_DB.PersonAttributes.ToList()
where p.getDateOfBirth == DOB &&
p.FirstName.Contains(FName) || p.FirstName.StartsWith(FName) &&
p.LastName.Contains(LName) || p.LastName.StartsWith(LName)
select p;
这给出了这样的结果:
Ileana May 10/30/1967
Kristina May 4/23/1971
margaret Mayberry 7/26/1942
Karla Mayorga 5/14/1986
Stan Mayer 3/8/1952
Lori Maynard 7/22/1965
所以姓是好的,但出生日期不应该那样变化。感谢您的阅读。