Ошибка: дерево выражений может не содержать динамическую операцию

Я использую Asp.Net 4 и С#, я использую EF 4.

У меня есть этот запрос, я получаю сообщение об ошибке:

 An expression tree may not contain a dynamic operation

dynamic o = e.Item.DataItem;
var imagesContent = context.CmsImagesContents.FirstOrDefault(img => img.ContentId == o.ContentId);

Кажется невозможным использовать динамический тип с помощью выражения Lamba.

Как я могу исправить проблему и использовать мой объект o in my Lamba? Благодаря

PS: e.Item.DataItem имеет тип CmsContent и o.ContentId имеет тип Int

Ответ 1

Я нашел решение моей проблемы.

     int contentId = (int)o.ContentId;
     var image = context.CmsImagesContents.FirstOrDefault(img => img.ContentId == contentId);

Ответ 2

Изменить

dynamic o = e.Item.DataItem;

Для

var o = (CmsContent)e.Item.DataItem;