linq для возврата связанных типов объектов - PullRequest
1 голос
/ 08 ноября 2011

У меня есть функция, которая возвращает JsonResult, который должен быть списком всех типов объектов, которые связаны с предоставленным guid.Но я получаю сообщение об ошибке

LINQ to Entities не распознает метод метода System.Type GetType (), и этот метод нельзя преобразовать в выражение хранилища.*

Возможно ли это?

public JsonResult GetWebObjectTypesByWebObject(Guid id)
{
    JsonResult result = new JsonResult();
    var resultData = (from w in db.WebObjects
                      from r in w.RelatedWebObjects
                      where w.Id == id
                      select new { Type = r.GetType().BaseType.Name });
    result.Data = resultData;
    result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
    return result;
}

1 Ответ

0 голосов
/ 08 ноября 2011

Попробуйте это:

public JsonResult GetWebObjectTypesByWebObject(Guid id)
{
    JsonResult result = new JsonResult();
    var data = (from w in db.WebObjects
                      from r in w.RelatedWebObjects
                      where w.Id == id
                      select r).ToList();
    var resultData = data.Select(r => new { Type = r.GetType().BaseType.Name } );
    result.Data = resultData;
    result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
    return result;
}

Вы теряете отложенное выполнение, но в этом случае оно кажется несущественным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...