我们可以使用Linq将匿名类型转换为List <T>到C#中的实体吗?

SHE*_*ETE 2 c# linq-to-entities

我有一个包含三列的表我想使用自联接并检索具有别名的列.

表:Material(ID,Name,MaterialParentID)

public List<Material> GetMaterialList()
{
    List<Material> materilaList = new List<Material>();
    var query = (from c1 in db.Materials
                 join c2 in db.Materials on c1.ID equals c2.MaterialParentID
                 select c2);        

    return query.ToList();
}
Run Code Online (Sandbox Code Playgroud)

我想在exisiting查询中添加以下内容并返回List

select new { c2.ID, c2.MaterialParentID, c2.Name, ParentName = c1.Name })
Run Code Online (Sandbox Code Playgroud)

Jak*_*cki 6

只需使用实际的具体类型而不是匿名类型:

select new Material { 
    ID = c2.ID, 
    MaterialParentID = c2.MaterialParentID, 
    Name = c2.Name,
    ParentName = c1.Name 
}
Run Code Online (Sandbox Code Playgroud)