powered by simpleCommunicator - 2.0.33     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как реализовать такой функционал ?
9 сообщений из 9, страница 1 из 1
Как реализовать такой функционал ?
    #39934869
MrBitCoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет. Подскажите как это реализовать на EF.Core 3.

Есть таблица с некими периодами и значениями, актуальными на данные периоды
StartDate EndDate Value01.01.2020 00:00 01.01.2020 23:59 101.01.2020 00:00 01.01.2020 23:59 2

В программе в DbContext у меня есть набор сущностей MyEntity, с датами.
В результате мне нужно получить набор состоящий из пар <MyEntity,Value>. При этом нужно, чтобы были извлечены MyEntity по некоему фильтру. Например у которых ParentId =2.
Свойство Value не входит в MyEntity.

Как это реализовать ? Не очень понимаю, как от EF мне получить " составные модели ". Пока копаю в направлении Query Types . Но, как я понял, они завязаны на View исключительно ? Может быть нужно смотреть в направлении Owned Entity Types
...

PS. Другой вариант этой проблемы, когда у меня есть набор дат, и нужно извлечь те же самые пары на указанные даты. Вот SQL запрос под это дело:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with SomeDates as (
    SELECT TO_TIMESTAMP('2000-03-01 17:30:20','YYYY-MM-DD HH24:MI:SS') as MyDate
    union all
    SELECT TO_TIMESTAMP('2000-03-02 9:30:20','YYYY-MM-DD HH24:MI:SS')
)

select SomeDates.Field1, Mv."StartDate", Mv."EndDate", Mv."Value"
from SomeDates
join "MyValues" Mv on (SomeDates.MyDate >= Mv."StartDate" and SomeDates.MyDate < Mv."EndDate");




Собственно. Пока я вижу решение - заливать в программу все MyEntity подпадающие под условие ParentId =2, а затем формировать запрос на получение данных из SomeDates по датам, от каждого MyValue попавшего в выборку, и затем вручную склеивать все это. Но понятно, что это все совсем не верное решение.

Так как это все реализовать правильно ?
...
Рейтинг: 0 / 0
Как реализовать такой функционал ?
    #39935050
MrBitCoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть идеи ?
...
Рейтинг: 0 / 0
Как реализовать такой функционал ?
    #39935065
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrBitCoin,

не понятно что к чему и зачем оно нужно
...
Рейтинг: 0 / 0
Как реализовать такой функционал ?
    #39935073
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrBitCoin,
так сделайте класс "составной модели" и заполняйте её из контекста, а потом маппером конвертируйте в нужную Вам модель.
...
Рейтинг: 0 / 0
Как реализовать такой функционал ?
    #39935100
MrBitCoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

Я же описал. Есть модель1, у которой есть свойство - Дата.
Есть модель2, в которой поля: ДатаОт, ДатаДо, Значение.

нужно сопоставить 2 таблицы и для каждого объекта модели1 найти соответствующее значение модели2.
я привел SQL запрос, который это делает

Все это хочется сделать на стороне базы, а не в коде программы.

vb_sub
MrBitCoin,
так сделайте класс "составной модели" и заполняйте её из контекста, а потом маппером конвертируйте в нужную Вам модель.


Я не очень хорошо владею EF, поэтому описание звучит сложно.
Ваше решение поможет реализовать все на сервере ? Или оно предполагает, что мне нужно слить на клиента миллиард записей модель1 и 3 миллиарда записей модели2 и уже на клиенте джоинить по соответствующему условию ?

Что значит "заполняйте из контектса" ? И зачем нужен маппер, если я могу сразу заполнить составную модель из контектса ?
Я не понял...
...
Рейтинг: 0 / 0
Как реализовать такой функционал ?
    #39935119
aav1984
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrBitCoin,

Посмотрите тут
...
Рейтинг: 0 / 0
Как реализовать такой функционал ?
    #39935289
MrBitCoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем сделал через RawSql
...
Рейтинг: 0 / 0
Как реализовать такой функционал ?
    #39935311
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrBitCoin
В общем сделал через RawSql


Если у вас много raw sql, то скорее всего вам EF не подойдёт :)
...
Рейтинг: 0 / 0
Как реализовать такой функционал ?
    #39935851
MrBitCoin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не очень много. Но для сложных запросов )
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как реализовать такой функционал ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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