我希望在我的服务器中实现一个使用Entity Framework的搜索功能,现在我已经将它用于搜索我想要的字段而不是我的生日字段。
我的where语句看起来很恶心,有点meh,我似乎无法找到|
所有语句的正确方法然后要求如果搜索日期正确解析并使用它。
当我的搜索参数为"11/06/1996"
时,我知道有一些记录与其出生日期具有相同的日期时间。
.Contains()
是在SQL中执行LIKE
语句的正确方法吗?
查询:
var didParseDate = DateTime.TryParse(filter.SearchTag, out DateTime specialSearch);
var dateSearch = didParseDate ? specialSearch.ToString() : filter.SearchTag;
allCompanyRecords = DB.ClientMaster.GetCompanyRecords(_usersInCompany)
.Where(database=>
database.FirstName.Contains(filter.SearchTag) |
database.LastName.Contains(filter.SearchTag) |
database.MciNumber.ToString().Contains(filter.SearchTag) |
database.MaNumber.ToString().Contains(filter.SearchTag) |
database.MiddleInitial.Contains(filter.SearchTag) |
database.Address1.Contains(filter.SearchTag) |
database.Address2.Contains(filter.SearchTag) |
database.City.Contains(filter.SearchTag) |
database.State.ShortName .Contains(filter.SearchTag) |
database.State.LongName.Contains(filter.SearchTag) |
database.Gender.Name.Contains(filter.SearchTag) |
((didParseDate == true) && (database.Birthdate == specialSearch))
);