C#Mysql LINQ - 表达式LINQ to Entities无法识别方法ToList

时间:2017-01-25 03:49:23

标签: c# mysql linq

我有一个问题:

var query = (from persons in _entity.Persons
                         where persons.Id == personId select new Person
                         {
                             PersonId = (int)persons.Id,
                             PersonName = persons.PersonName,
                             PersonLastName = persons.PersonLastName,
                             PersonPatronymic = persons.PersonPatronymic,

                             PersonSigns = new PersonSigns()
                             {
                                  BodyType = _entity.PersonsSignsBodyType
                                                           .Where(c => c.PersonId == persons.Id)
                                                           .AsEnumerable()
                                                           .Select(c => c.PersonBodyType).ToList()
                             }
                        });
query.ToList().FirstOrDefault();

运行查询时会抛出异常:

  

“表达式LINQ to Entities无法识别方法”   System.Collections.Generic.List 1 [System.Nullable 1 [System.Int32]]   ToList [Nullable 1] (System.Collections.Generic.IEnumerable 1 [系统。   Nullable`1 [System.Int32]])“,所以它不能转换为   存储库的表达。“

但是当我删除这部分代码时 - 它可以工作:

PersonSigns = new PersonSigns()
{
      BodyType = _entity.PersonsSignsBodyType
                        .Where(c => c.PersonId == persons.Id)
                        .AsEnumerable()
                        .Select(c => c.PersonBodyType).ToList()
}

一个人可能具有身体的一些显着特征,因此您需要将所有ID和特殊身体放在列表中。

问:如何重写内部查询?

0 个答案:

没有答案