나는 인터넷 사용자들에게 서비스를 제공하는 인터넷 웹 사이트에서 일하고 있습니다. 비즈니스 팀의 협력자가 원하는 정보를 얻을 수있는 관리 시스템이 있습니다. 지난 3 일 동안 신규 사용자가 몇 명이나 되었습니까? 또는 "농담"태그 등으로 게시 된 기사 수를 표시합니다. 따라서 관리 시스템에는 조건이있는 일부 표를 검색하기위한 몇 페이지가 있습니다. 이 페이지들은 매우 비슷합니다.이렇게 많은 기준이 있습니다.
UserID : [------------] 등록 된 시간 [BEGIN] ~ [END] [검색]
때 검색 결과는
User
단지보다 더 많은 속성이 클래스 다음과 같습니다 사용자 ID/닉/RegisterTime (뿐만 아니라 사용자 표)이지만 3 개의 속성 만 조건으로 처리됩니다. 그래서 나는 UserSearchCriteria
클래스 등이 있습니다
public class UserSearchCriteria
{
public long UserID { get; set; }
public string NickKeyword { get; set; }
public DateTime RegisteredTimeStart { get; set; }
public DateTime RegisteredTimeEnd { get; set; }
}
그런 다음 데이터 액세스 레이어에서, 검색 방법은 유형
UserSearchCriteria
으로 인수 소요되며, 쿼리 해당
Expression<Func<User, bool>>
을 구축 할 수 있습니다. theDAL 밖에서 다른 개발자는 기준에 의해 제공된 3 가지 조건 만 사용하여 사용자 테이블을 검색 할 수 있습니다. 예를 들어
City
속성이 "New York"인 사용자를 검색 할 수 없습니다 (일반적으로이 속성은 색인이 없기 때문입니다) DB에서 그것으로 검색하는 것은 느리다).
질문 1 : 검색을 포함하는이 구현은 정확하거나 옳지 않습니까? 어떤 제안?
질문 2 : 지금 나는 등 ArticleSearchCriteria
, FavouriteSearchCriteria
과 같은 프로젝트에 더 기준 클래스를 발견하고 기준이 내가 생각하는 미래에 점점 더 될 것입니다. 그들은 거의 동일한 작동 메커니즘을 가지고 있지만 코드를 반복해야합니다. 더 나은 해결책이 있습니까?
P.이 정보가 필요한 경우 jQuery + ASP.NET MVC 3 + MongoDB