1
다음 LINQ 문이 주어지면 select 부분을 리팩토링 할 수 있는지 여부를 말해 줄 수 있습니까? 나는 표현 트리를 사용하지 않았으며 Selects에 관한 많은 정보를 찾을 수 없었습니다. 이것은 SQL로 변환되어 메모리가 아니라 SQL Server 내에서 실행된다는 점에 유의하십시오. 내가 좋아하는 것LINQ select 문을 리팩토링하는 방법
var results = db.Widgets
.Select(w => new
{
Name = (w is x) ? "Widget A" : "Widget B"
});
이 작업을 수행 할 수 있어야합니다 ..
var name = [INSERT REUSABLE EXPRESSION]
var somethingElse = [INSERT REUSABLE EXPRESSION]
var results = db.Widgets.Select(w => new { Name = name, SomethingElse = somethingElse });
은 물론 용도는 더 복잡한 문장입니다.
그래서'WidgetType'은 문자열입니까? 표현식을 문자열에 지정하고 싶습니까? 또는 WidgetType을 표현식으로 사용 하시겠습니까? –
@JeroenvanLangen WidgetType은 문자열입니다. 임은 내 LINQ 코드에서 일반적으로 사용되는 리팩터링 방법을 찾으려고 시도합니다 – Grant
'표현식'이 '델리게이트'와 매우 유사하다는 것을 알고있는 한 차이점은 클라이언트의 로직을 SQL 쿼리로 변환하는 데 사용됩니다. 서버에서 쿼리를 실행하고 결과를 다시 얻으십시오. ** 그래서 작성한 코드는 매우 이상하고 달성하기가 어렵습니다. 적어도 위임 또는 표현을 전달하는 규칙을 따라야합니다. 방법. –