栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

LINQ表达式返回属性值?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

再次感谢你的帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/416852.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号