0

私はこのようなものを持っています:

class myClass {
  protected ICollection<Expression<Func<event_info, bool>>> _whereConditionsList = new List<Expression<Func<event_info, bool>>>();

  public void main() {
    _whereConditionsList.Add(ev => ev.createdby == 6);
    var query = from ev in dataConnection.event_info
                where ev.isdeleted == 0
                select ev;
    if (_whereConditionsList.Count() > 0) {
      var predicate = PredicateBuilder.True<event_info>();

      foreach (var whereCond in _whereConditionsList) {
        predicate = predicate.And(whereCond);
      }
      query = query.Where(predicate);
    }
  evInfo = query.ToList(); 
}

しかし、query.ToList()に到達するたびにこのエラーがスローされるため、実際にSQLコードに変換するのに問題があります。

System.NotSupportedException: The LINQ expression node type 'Invoke' is not supported in LINQ to Entities.
 ...
 at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
 ...

私のアプローチで何が間違っているのですか?

4

1 に答える 1

0

これを行わなければならなかったことが判明しました: Linq-to-entitiesの述語を組み合わせる

概要:query.AsExpandable()。Where()

于 2012-06-09T03:45:58.087 に答える