음,이 방법보다 쉽습니다. 문자열 값으로 저장된 금액을 포함하는 테이블이 있습니다. 하지만 내 코드에는 10 진수 값이 필요하며 IQueryable이 작성하는 쿼리의 일부로 십진수로 캐스팅되어야합니다. 따라서 .ToList()를 사용할 수 없습니다. 캐스트는 그 뒤에있는 데이터베이스에 의해 수행되어야합니다.
이 IQueryable은 기본적으로 IQueryables의 체인의 일부이므로 다음 쿼리는이 양에 대한 필터를 추가하여 더 작은 선택을하거나 그 양의 다른 종류의 계산을 수행하려고 할 수 있습니다. 입력되는 쿼리는 이미 모든 데이터의 하위 선택 일 수 있습니다.
편집 : 제가 여기에 있어요 설명해 보자 내가 작성하는이 방법 같은 것을 가지고IQueryable 내에서 문자열을 십진수로 변환하는 방법
public static IQueryable<PriceList> GetPriceList(this IQueryable<PriceData> query) => query.Select(d => new PriceList{Name = d.Item.Name, Price = decimal.Parse(d.Value)}).AsQueryable();
을 그리고 PriceData 몇 필드와 문자열 값으로 가격를 포함하는 기록이다. 그러나 PriceList 레코드에는 10 진수가 필요합니다.
이 방법은 다른 선택 방법, 수학 등을 위해 다른 확장 방법에서 사용될 수 있습니다. Decimal.parse 및 다른 옵션이 IQueryable 내에서 작동하지 않는다는 것입니다 ...
AsIQueryable()'? –
내가 할 수만 있다면 그래. 하지만. 저는 입력으로 IQueryable을 얻었고 더 큰 표현 트리의 일부이므로 IQueryable을 출력으로 쫓아 내야합니다 ... –
왜 첫 번째 인스턴스의 가격이 문자열입니까? 이것은 틀린 것처럼 보인다. (그리고 아마도 Money, Decimal이어야합니다). 즉, 아마 * https://stackoverflow.com/questions/12118258/int-parse-in-linq-expression –