source

람다 식은 대리자 형식이 아니므로 'string' 형식으로 변환할 수 없습니다.

manycodes 2023. 5. 11. 21:34
반응형

람다 식은 대리자 형식이 아니므로 'string' 형식으로 변환할 수 없습니다.

LINQ 람다 식을 다음과 같이 사용합니다.

int Value = 1;
qryContent objContentLine;

using (Entities db = new Entities())
{
    objContentLine = (from q in db.qryContents
                      where q.LineID == Value
                      orderby q.RowID descending
                      select q).FirstOrDefault();
}

그러나 다음과 같은 오류가 발생합니다.

람다 식은 대리자 형식이 아니므로 'string' 형식으로 변환할 수 없습니다.

당신이 실종된 것 같습니다.using System.Linq;이 시스템 클래스에서.

추가합니다.using System.Data.Entity;규칙대로

제 경우에는, 추가해야 했습니다.using System.Data.Entity;

내 사건은 내가 사용하고 있던 것이 해결되었습니다.

@Html.DropDownList(model => model.TypeId ...)  

사용.

@Html.DropDownListFor(model => model.TypeId ...) 

해결할 것입니다

다른 사용자가 지정한 지침을 사용하여 누락하는 것과 관련이 없는 경우 쿼리에 다른 문제가 있는 경우에도 이 문제가 발생합니다.

VS 컴파일러 오류 목록 확인: 예를 들어 쿼리에 "Value" 변수가 없으면 "lambda to string" 오류가 발생하고 알 수 없는/잘못된 필드와 관련된 오류가 몇 개 더 발생합니다.

당신의 경우 다음과 같을 수 있습니다.

objContentLine = (from q in db.qryContents
                  where q.LineID == Value
                  orderby q.RowID descending
                  select q).FirstOrDefault();

오류:

오류 241 람다 식이 대리자 유형이 아니므로 람다 식을 'string' 유형으로 변환할 수 없습니다.

오류 242 '시스템' 위임.Func<...>'은(는) 1개의 인수를 사용하지 않습니다.

오류 243 '값' 이름이 현재 컨텍스트에 없습니다.

"Value" 변수 오류를 수정하면 다른 오류도 사라집니다.

지금 이 문제에 비틀거리는 사람들을 위해, 저는 모든 참조와 적절하게 배치된 진술을 사용하여 던져진 이런 유형의 오류를 해결했습니다.선언된 DataTable에서 호출하는 대신 DataTable을 반환하는 함수로 대체하는 것은 분명 약간의 혼란이 있습니다.예:

이것은 저에게 효과가 있었습니다.

DataTable dt = SomeObject.ReturnsDataTable();

List<string> ls = dt.AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>();

하지만 이것은 그렇지 않았습니다.

List<string> ls = SomeObject.ReturnsDataTable().AsEnumerable().Select(dr => dr["name"].ToString()).ToList<string>();

왜 그런지는 아직 100% 확신할 수 없지만, 이런 유형의 오류로 인해 좌절하는 사람이 있다면, 이것을 시도해 보십시오.

언급URL : https://stackoverflow.com/questions/19197481/cannot-convert-lambda-expression-to-type-string-because-it-is-not-a-delegate-t

반응형