2010-12-28 5 views
0

과 익명 형식을 사용하는 방법 : 나는 결과가이 표현에 넷플릭스에서 설정 설정하는 방법나는이 컬렉션 작성하는 경우 넷플릭스 중 하나로, OData API를

IEnumerable<_TITLE> _titles = null; 

: 나는 점점 오전

_titles = from t in Titles where t.Id == "ApUFq" select new {t, t.Cast} 

:

암시 적으로 형에게 'System.Linq.IQueryable' 에 '싸이 변환 할 수 없습니다 집계. 일반. 숫자 합계 < _ 제목> '. 명시 적 변환 (당신 이 캐스트를 누락?)

나는 익명의 유형을 사용하고 있기 때문에 그것의 이해가 존재한다. _TITLE은 Netflix 속성의 하위 집합을 노출하는 사용자 정의 복합 객체입니다.

"새"앞에 "_TITLE"을 추가하면 개체에 IENUMBERABLE이 구현되지 않는다고 표시됩니다.

_TITLE이 IENUMBERABLE을 구현하는 경우 _TITLE에 ADD에 대한 정의가없고 변환 오류가 계속 발생한다고 표시됩니다.

기본적으로 Netflix에서 반환 된 데이터로 _TITLE 속성을 설정하려고합니다. _TITLE에 필요한 필드와 함께 PERSON (Cast) 컬렉션을 포함하도록 정의했습니다.

+0

해결하시기 바랍니다 생성자를 괄호를 사용하여 전화를 의미하여 텍스트를 올바르게 형식화합니다. –

답변

1

일반 유형이 _TITLE 인 경우 select new _TITLE {Prop = Value}을 수행해야합니다. 당신이 제네릭 형식을 사용하려는 경우

, 당신은 var를 사용해야합니다 :

var _titles = from t in Titles where t.Id == "ApUFq" select new {t, t.Cast}; 

그래서 아마도 이것이 당신이 무엇을 의미하는지입니다 : 그 라인을 따라

var _titles = from t in Titles where t.Id == "ApUFq" select new _TITLE {Title = t}; 

뭔가. var은 익명 유형을 사용하지 않으려는 경우에도 사용할 수 있습니다.

1

vcsjones의 답변 외에도 _TITLE에 IEnumerable을 구현할 필요가 없습니다. 무슨 일이에요하면

var foo = new TYPENAME { a, b }; 

를 쓸 때 뜻이다 :

  1. 는 IEnumerable을 구현하는 새로운 TYPENAME을 만들
  2. 전화 foo.Add의 (a) 다음 foo.Add (B)

예 :

var names = new List<string> { "Joe", "Mary", "Susan" }; 

vcsjones가 언급 한 바와 같이, 당신은 객체를 초기화 할 때 매개 변수 이름을 사용할 필요가, 또는 아마도 당신이

var title = new _TITLE { Title = t.ID, Cast = t.Cast }; 
// or 
var title = new _TITLE (t.ID, t.Cast); 
+1

왜 _TITLE에 IEnumerable을 구현해야합니까?나는 이것이 작동한다고 생각하는 방식이 LINQ 운영 반환 IEnumerable <_TITLE>입니다 생각합니다. 내가 생각하기에 문제는 그가 {}을 객체 초기화 자로 사용할 때 컬렉션 이니셜 라이저로 사용했다는 것입니다. – vcsjones

관련 문제