代码之家  ›  专栏  ›  技术社区  ›  esac

linq to entities group by expression给出“匿名类型投影初始值设定项应为简单名称或成员访问表达式”

  •  15
  • esac  · 技术社区  · 14 年前

    我用这个表达式得到上面提到的错误:

    var aggregate = from t in entities.TraceLines
        join m in entities.MethodNames.Where("it.Name LIKE @searchTerm", new ObjectParameter("searchTerm", searchTerm)) on t.MethodHash equals m.MethodHash
        where (t.CallTypeId & (int)types) == t.CallTypeId && t.UserSessionProcessId == m_SessionId
        group t by m.Name into d                                                   
        select new
        {
            d.Key,                                     
            d.Sum(x => x.InclusiveDurationMilliseconds) // <- squigglies on this line
        };
    

    知道是什么导致了这个错误吗?

    1 回复  |  直到 14 年前
        1
  •  40
  •   Matthew Abbott    14 年前

    做一些类似的事情:

    select new
    {
        d.Key,
        Sum = d.Sum(x => x.InclusiveDurationMilliseconds)
    };
    

    它可以从另一个属性中投影属性名,但不能从方法中投影。