powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF + ICollection
4 сообщений из 4, страница 1 из 1
EF + ICollection
    #38674497
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщем встала задача как сделать метод расширения для ICollection, потому что в бл правила вытаскивание большое и хотело его упаковать. Пример для IQueryable простой:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public static IQueryable<AdditionalBonus> Actuals(this IQueryable<AdditionalBonus> model)
        {
            return model.Where(x => (x.EndDate == null || x.EndDate >= DateTime.Today) && (x.StartDate == null || x.StartDate <= DateTime.Today) && x.Sum > 0);
        }

        public static decimal ActualsSum(this IQueryable<AdditionalBonus> model)
        {
            return model.Actuals().Select(x => x.Sum).DefaultIfEmpty().Sum();
        }


но как такое сделать для ICollection чтоб EF мог формировать запрос к бд вот для такого
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 using (var db = new contex())
{
var model = db.Table.select(x=> new {
...
amount =  x.AdditionalBonus.Where(y => (y.EndDate == null || y.EndDate >= DateTime.Today)
 && (y.StartDate == null || y.StartDate <= DateTime.Today) && y.Sum > 0)
.Select(y => y.Sum).DefaultIfEmpty().Sum(), // вот так работает шас но везде писать так неудобно если условие будет меняться
amount2 =  x.AdditionalBonus.ActualsSum() // вот так бы хотелось
...
})
}
...
Рейтинг: 0 / 0
EF + ICollection
    #38675320
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
handmadeFromRu,

.AsQueryable() ?
...
Рейтинг: 0 / 0
EF + ICollection
    #38675578
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно написать расширение для LINQ провайдера, тогда можно будет писать так:
Код: c#
1.
2.
3.
...
.select(x => new { amount2 = ActualsSum.Invoke(x.AdditionalBonus) });
...


Моё решение: "Композиция дерева выражений" .
...
Рейтинг: 0 / 0
EF + ICollection
    #38676873
handmadeFromRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

вот им пытался крутить но что то не понял. почитаю вашу ссылку
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF + ICollection
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]