LINQ表达式返回属性值?

LINQ表达式返回属性值?,第1张

LINQ表达式返回属性值?

最简单的方法:使用LINQKit(免费的非限制性许可证)

工作版本的代码:

public static IEnumerable<T> SelectByParameterList<T, PropertyType>(this Table<T> items, IEnumerable<PropertyType> parameterList, expression<Func<T, PropertyType>> propertySelector, int blockSize) where T : class{    var groups = parameterList        .Select((Parameter, index) => new {     GroupID = index / blockSize, //# of parameters per request     Parameter }        )        .GroupBy(x => x.GroupID)        .AsEnumerable();    var selector = LinqKit.Linq.Expr(propertySelector);    var results = groups    .Select(g => new { Group = g, Parameters = g.Select(x => x.Parameter) } )    .SelectMany(g =>                 items.AsExpandable().Where(item => g.Parameters.Contains(selector.Invoke(item)))    );    return results;}

用法示例

    Guid[] local_refill_ids = Refills.Select(r => r.Id).Take(20).ToArray();    IEnumerable<Refill> results = Refills.SelectByParameterList(local_refill_ids, r => r.Id, 10); //runs 2 SQL queries with 10 parameters each

再次感谢你的帮助!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5045088.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存