MappedItem 클래스 목록을 생성하려고하면 오류가 발생합니다 (아래 참조). 간단히 말해서 아래의 코드 예제는 범주, 날짜 범위 및 SKU별로 제품을 찾으려고합니다. 내가 가진 요구 사항은 사용자가 쉼표로 구분 된 SKU 목록을 입력 할 수 있어야하며 검색은 사용자가 입력 한 SKU 중 하나로 시작하는 모든 제품을 찾는 것입니다. 코드를 실행하면 얻을 수 있습니다.LINQ to SQL 구현시 로컬 시퀀스를 사용할 수 없습니다.
로컬 시퀀스는 Contains() 연산자를 제외한 쿼리 연산자의 LINQ to SQL 구현에 사용할 수 없습니다.
문자열리스트로의 SKU 콤마 구분 된 문자열로 변환 :
축약 된 시퀀스는이된다.
string sku = TextSKU.Text;
List<string> skuList = sku.Split(new char[] { ',' }).ToList();
검색 결과를 허용 할 클래스의 코드를 다른 곳에서 정의하십시오.
public class MappedItem
{
public string ItemDescription { get; set; }
public int ItemCount { get; set; }
public MappedItem()
{
}
public MappedItem(string itemDescription, int itemCount)
{
ItemDescription = itemDescription;
ItemCount = itemCount;
}
}
여기에 내가 범인은 내가 추출 아래에 표시 한 코드의 라인이라고 생각
List<MappedItem> widgetItems = (from c1 in db.CCRCodes
join pac in db.widgetAssignedCodes on c1.code_id equals pac.code_id
join ph in db.widgetHistories on pac.history_id equals ph.history_id
where ph.contact_dt.Value.Date >= startDate && ph.contact_dt.Value.Date <= endDate &&
(string.IsNullOrEmpty(baanCatFam) || ph.baan_cat_family_code == baanCatFam) &&
(string.IsNullOrEmpty(baanCat) || ph.baan_cat_code == baanCat) &&
(string.IsNullOrEmpty(baanSubCat) || (ph.baan_sub_cat_code == baanSubCat)) &&
(string.IsNullOrEmpty(sku) || skuList.All(sl => ph.product_mod.StartsWith(sl)))
group c1 by c1.code_desc into ct
select new MappedItem
{
ItemDescription = ct.Key.ToUpper(),
ItemCount = ct.Count()
}).OrderByDescending(m => m.ItemCount)
.ToList();
에서 내 결과를 생성하는 쿼리입니다.
skuList.All(sl => ph.product_mod.StartsWith(sl))
이
는 사용자 입력의 SKU 쉼표로 구분 목록에서 파생 skuList에서 요소로 시작하는 모든 SKU를 식별. 내 질문은이 오류의 원인과 코드 예제를 통해 해결할 수있는 일입니다.
당신을 :
다음, 헬퍼 방법 :
이제 모두 함께 넣어 필터링 식으로 컬렉션의 각 항목을 tranforming에 의해 시작 록! –