У меня есть приложение, написанное на C#. В этом приложении у меня есть код, который соединяет некоторые данные между двумя источниками данных. Этот код выглядит следующим образом:LINQ - создание свойства для хранения результата оператора LINQ
Result result = new Result();
var items = from userOrder in UserOrders
join product in UserProducts on userOrder.OrderId equals prodcut.OrderId
orderby userOrder.Date, product.Name
select new
{
OrderDate = userOrder.Date,
ProductName = product.Name,
};
result.Items = items.ToList();
Последняя строка кода создает ошибку во время компиляции, который говорит:
Cannot implicitly convert type 'System.Collections.Generic.List<<anonymous type: DateTime OrderDate, string ProductName>>' to 'System.Collections.Generic.List<dynamic>'
Как сообщается эта ошибка, Items
свойство на моем Result
объекта в настоящее время является List<dynamic>
. Я могу изменить тип этого свойства. Но мне нужно это свойство, чтобы в своем отчете я мог пропустить Items
. Мой вопрос: какой тип собственности должен быть Items
?
Возможно, вам понадобится создать класс DTO, если это EF. Похожее: http: //stackoverflow.com/questions/39277515/entity-framework-add-local-data-to-list-from-database –
Просто сделайте 'результат.Items = item.Cast() .ToList(); 'Вам очень нужно' AsEnumerable() 'перед' Cast', если это EF. Но вам лучше создать конкретный класс вместо использования анонимных классов и динамических. –
juharr
Комментарий Op @juharr работает, поэтому вы должны использовать его, если хотите динамику. Нечего исправить. – mybirthname