Выражение LINQ для возврата значения свойства?
Самый простой способ сделать linq-query-syntax это: использовать LINQKit (бесплатная linq-to-sql неограниченная лицензия)
Рабочая linq2sql версия кода:
public static IEnumerable SelectByParameterList(this Table items, IEnumerable parameterList, Expression> 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 =>
/* AsExpandable() extension method requires LinqKit DLL */
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 results = Refills.SelectByParameterList(local_refill_ids, r => r.Id, 10); //runs 2 SQL queries with 10 parameters each
Еще c# раз спасибо за вашу помощь!
c#
linq
linq-to-sql
lambda
expression
2021-12-15T17:33:53+00:00
2022-04-29T20:06:12+00:00
Joofloo
Вопросы с похожей тематикой, как у вопроса:
Выражение LINQ для возврата значения свойства?
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.