1
이름으로 Employee 컬렉션을 검색해야하는이 메서드가 있습니다. 나는 찾고자하는 성의 배열을 전달하고,이 메서드는 Employees에 이러한 이름을 반환합니다. 단순한. 내가 부분 라스트 네임의 배열을 전달하고, 그 성과 이름 부분 성과 이름과 일치하는 모든 종업원을 얻을 수 있도록다음과 같은 방법으로 내 방법을 변경할 수 있습니까?
public IQueryable<Employee> GetEmployees(IEnumerable<string> lastNames)
{
var query = Employees.Where(e => lastNames.Contains(e.LastName));
return query;
}
는 지금은 방법을 변경해야합니다.
public IQueryable<Employee> GetEmployees(IEnumerable<string> partialLastNames)
{
// the code above will not work
}
나는이 이름을 가진 직원이 있다면 그래서 : 시고니 위버, Amanada 비버, 존 스미스, 제인 슨
내가 partialLastName의 arary 통과를 [ "단언", "수학"], 그것은 것 저에게 Sigourney Weaver, Amanada Beaver, Jane Matheson과 같은 쿼리를 보내주십시오.
어떻게 할 수 있습니까?
감사합니다.
찾고있는 것 같아? – kenny
좋습니다! 대단히 감사합니다 !! 사실 원래 함수에서는 부분적인 Employee Number (digits)로 검색해야합니다. 그래서 나는 괜찮을거야. 감사. – monstro
이 방법은 작동하지만 부분 길이의 특정 길이까지만 작동합니다. 대략 48-49 개의 배열 요소. 50 개의 문자열을 전달할 때 예외가 throw됩니다. SQL 문의 일부가 너무 깊게 중첩되어 있습니다. 쿼리를 다시 작성하거나 작은 쿼리로 나눕니다. SQL 쿼리를 각 문자열에 대해 UNION을 사용하여이 LINQ 식으로 만들고 SQL 쿼리의 최대 중첩 수준에 도달했기 때문에 나는 믿습니다. 다른 접근 방법이 필요합니다. – monstro