LINQ 람다 내부에 메서드를 배치해야합니다. 기본적으로이 코드는 productName
를 포함하는 모든 shoppingCart
인스턴스를 선택하는 데 사용됩니다LINQ 람다 확장 메서드 내부에 메서드를 삽입하는 방법
string productName = "Some product";
searchShoppingCart = shoppingCart.Where(m => productName.Equals(_ProductRepository.GetProductName(m.Id)));
: 나는 다음과 같은 코드가 있습니다.
string GetProductName(int shoppingCartId)
메서드는 _ProductRepository
에서 하나의 제품 이름을 반환하는 메서드입니다. 이 방법이 구현되고 논리가 중요하지 않습니다.
LINQ가 예외를 throw하는 것이 문제입니다. 이 예외가 발생하는 이유를 알고 있습니다. 해결 방법을 알고 싶습니다. 시도 :
var productContained = shoppingCart.Select(sc => new
{
scId = sc.Id,
productName = _ProductRepository.GetProductName(sc.Id)
});
searchShoppingCart = shoppingCart.Where(sc => sc.Id.Equals(productContained.Where(pc => pc.productName.Equals(productName))
.Select(pc => pc.Id)));
하지만 나에게도 같은 예외가 있습니다. 다른 해결 방법이 있습니까?
UPDATE
예외 1 인
엔티티에있어서 '선택 System.String GetProductName (INT32)'방식을 인식하지 않고,이 방법은 저장 식으로 변환 할 수없는 발 LINQ.
나는 다른 사람들이 당신을 도울 수 있도록 어떤 예외를 아는 것이 중요합니다 생각합니다. –
어떤 예외가 발생합니까? stacktrace는 무엇입니까? – Alex
"이 예외가 왜 발생하는지 이유를 알고 있습니다."- 어쨌든 나는 그것을 의심합니다. 그러나 어떤 경우에도, 예외가 무엇인지 우리에게 말하지 않을 때 어떻게 제안을 기대할 수 있습니까? – Jon