相关疑难解决方法(0)

具有泛型属性的LINQ表达式

我的问题与这个问题有关:linq-expression-with-generic-class-properties

这次我想得到新创建的具有共同id的对象.id实际上是外键,因此可以有不同的名称.

我想出了以下内容:

public static IEnumerable<T> GetNew<TId, T>(IQueryable<T> objects, TId id, DateTime date, Expression<Func<T, TId>> idSelector) 
    where T : class, ISyncable<TId>
{
    return objects.Where(o => idSelector(o) == id && o.CreatedDate > date);
}
Run Code Online (Sandbox Code Playgroud)

该方法将被调用如下:

var modified = GetNew(dbObjects, id, date, entity => entity.PersonId);
Run Code Online (Sandbox Code Playgroud)

不幸的是我得到了错误:

'idSelector' is a variable but is used like a method.
Run Code Online (Sandbox Code Playgroud)

传递给方法的表达式应该是这样的:

objects.Where(o => o.PersonId == id && o.CreatedDate > date);
Run Code Online (Sandbox Code Playgroud)

c# linq generics lambda

3
推荐指数
1
解决办法
2835
查看次数

标签 统计

c# ×1

generics ×1

lambda ×1

linq ×1