2010-02-01 1 views
2

Этот конкретный запрос дает мне ошибку, пожалуйста, где я буду неправильнопроблема запроса с LINQ: Не удается бросить объект

public IList <BC_FeedbackBy> GetFeedbackList() 
     { 
      int feedbackId = 0; 
      string feedbackName = string.Empty; 

      using (brandconnectionsEntities modelObject = new brandconnectionsEntities()) 
      { 
       return (IList<BC_FeedbackBy>)(from s in modelObject.BC_FeedbackBy 
           select new 
           { 

            feedbackId =s.FeedbackById , 
            feedbackName=s.FeedbackBy , 
           }) 
        .ToList(); 
      } 
     } 

ошибка

Unable to cast object of type 'System.Collections.Generic.List 
`1[<>f__AnonymousType0`2[System .Int32,System.String]]' to type 
'System.Collections.Generic.IList`1[BrandConnectionsPrototype.Models.BC_FeedbackBy]'. 

ответ

3

select new создает экземпляры нового анонимного тип. Запрос создает список из них, а затем вы пытаетесь применить его к IList<BC_FeedbackBy>. Вместо этого создайте новые экземпляры BC_FeedbackBy.

Что-то вроде

select new BC_FeedbackBy() 
{ 
    feedbackId =s.FeedbackById , 
    feedbackName=s.FeedbackBy , 
}) 
+0

Вам не нужен конструктор для этого, по умолчанию генерируется пустой один работает так как вы используете инициализаторы объектов: http://msdn.microsoft.com/en-us/ library/bb384062.aspx –

+0

Doh, вы правы. Я думал об использовании конструктора, но поскольку я только что скопировал код из вопроса, я закончил использование свойств, поэтому для этого достаточно конструктора по умолчанию. Благодаря! –