powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Связь один к одному EF Code First
25 сообщений из 357, страница 12 из 15
Связь один к одному EF Code First
    #38800061
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAХм, ну а если нам надо получить Card для выполнения каких-либо действий над ней, для бизнес-логики? Не с анонимным же типом работать и не с типизированным DTO.

Есть два пути: проекции могут мапиться также и обратно в Entity. Или для изменяющих запросов, берутся Entity. Я предпочитаю для изменения работать исключительно с Entity.Правильно-ли я понял, что для маппинга ты используешь AutoMapper?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800075
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAПравильно-ли я понял, что для маппинга ты используешь AutoMapper?

Да, всё верно. До недавнего времени у проекций был существенный недостаток: в проекцию нельзя было передать параметры. Теперь всё в шоколаде, параметры можно передавать
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800365
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAПравильно-ли я понял, что для маппинга ты используешь AutoMapper?

Да, всё верно. До недавнего времени у проекций был существенный недостаток: в проекцию нельзя было передать параметры. Теперь всё в шоколаде, параметры можно передавать Ясно. .Project() и .To<>() - это методы расширения из библиотеки AutoMapper.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800378
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAЯсно. .Project() и .To<>() - это методы расширения из библиотеки AutoMapper.

Точно.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800385
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, погоди, то есть если "для изменяющих запросов, берутся Entity", то получается мы не просто выбираем данные, но ещё и пропускаем их через AutoMapper?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800386
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И они маппятся сами на себя?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800612
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, погоди, то есть если "для изменяющих запросов, берутся Entity", то получается мы не просто выбираем данные, но ещё и пропускаем их через AutoMapper?

Нет, просто Entity берутся. Но можно изменять и проекции, они также мапятся в Entity обратно -- способ очень хорошо подходит для Angular-style разработки (но мне всё равно не нравится, теряется контроль).
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800619
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ они маппятся сами на себя?

Поясни плз, что ты имеешь сейчас в виду? Кто на кого мапится?

Есть ORM Entity (EDM), а есть проекции (DTO). Для изменения берём Entity, для отображения/передачи DTO. Но можно работать только с DTO, на этом можно полностью построить архитектуру (когда напрямую с Entity больше никто не работает).
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800653
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAИ они маппятся сами на себя?

Поясни плз, что ты имеешь сейчас в виду? Кто на кого мапится?

Есть ORM Entity (EDM), а есть проекции (DTO). Для изменения берём Entity, для отображения/передачи DTO. Но можно работать только с DTO, на этом можно полностью построить архитектуру (когда напрямую с Entity больше никто не работает).Код в случае с Entity как выглядит?
Так:
Код: c#
1.
GetAll().Project().To<Entity>()

?

То есть AutoMapper отслеживает, что маппить не надо?

А если есть полноценный DomainModel объект, не DTO, и не ORM Entity, то свой велосипед изобретать?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800725
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКод в случае с Entity как выглядит?
Так:
Код: c#
1.
GetAll().Project().To<Entity>()


?

Зачем???

Просто берём Entity, без всякого AutoMapper-а. Тем более проекция Entity -> Entity приведёт к bulk include всех навигационных параметров. Это практически никогда не нужно (лично я с такой необходимостью даже не сталкивался).

skyANAА если есть полноценный DomainModel объект, не DTO, и не ORM Entity, то свой велосипед изобретать?

Как раз таки нет. DomainModel «объект» это и не объект вовсе. Это может быть целое состояние, с разными данными. И совсем не обязательно оно должно быть полностью загружено со всем потрохами. В ином случая, я бы не добавлял такую сущность (если по-твоему это и правда именно объект), ибо лишнее. Как тама говорил Оккама?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800743
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAКод в случае с Entity как выглядит?
Так:
Код: c#
1.
GetAll().Project().To<Entity>()


?

Зачем???

Просто берём Entity, без всякого AutoMapper-а. Тем более проекция Entity -> Entity приведёт к bulk include всех навигационных параметров. Это практически никогда не нужно (лично я с такой необходимостью даже не сталкивался).И как код будет выглядеть у тебя в этом случае?

hVosttskyANAА если есть полноценный DomainModel объект, не DTO, и не ORM Entity, то свой велосипед изобретать?

Как раз таки нет. DomainModel «объект» это и не объект вовсе. Это может быть целое состояние, с разными данными. И совсем не обязательно оно должно быть полностью загружено со всем потрохами. В ином случая, я бы не добавлял такую сущность (если по-твоему это и правда именно объект), ибо лишнее. Как тама говорил Оккама? Ну что значит "не объект вовсе". В домене определён некий тип (класс), экземпляр этого класса - есть объект. Объект имеет состояние и поведение.

И это не по-моему, это ООП :)
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800818
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ как код будет выглядеть у тебя в этом случае?

Например, Get(id)


skyANAНу что значит "не объект вовсе". В домене определён некий тип (класс), экземпляр этого класса - есть объект. Объект имеет состояние и поведение.

И это не по-моему, это ООП :)

Ну ладно, есть у тебя некий объект, и как он у тебя хранится? По кускам вразброс по базе? И чем это не отражение? Или у него есть ещё какие-то поля/данные, не имеющие прямого отношения к данным в хранилище? Я предпочитаю мыслить в контексте задачи, а сейчас о чём ты говоришь, я не понимаю.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800840
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt, ну мы же рассматриваем некий универсальный, по-твоему мнению, механизм. Вот и хочется понять степень его универсальности :)
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800841
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты же не будешь отрицать того, что в мире существует DDD.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800855
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVostt, ну мы же рассматриваем некий универсальный, по-твоему мнению, механизм. Вот и хочется понять степень его универсальности :)

Ты механизм предложенный мною для извлечения данных зачем экстраполируешь на DDD? Так мы скоро до UX доберёмся, а затем до маркетинга, затем до теории большого взрыва.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800857
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttИменно, я преподношу их как универсальный механизм -- для чего? Отвечаю -- для выбора нужного среза данных. Что такое проекция? Это POCO объект с нужным набором полей, может включать в себя поля из одной или нескольких ORM Entity, целые объекты
Эти проекции получается часть модели? Затем проекции мапятся во viewmodel?
hVosttвычисляемые поля и аггрегации.

Могут содержать логику?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800866
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVosttИменно, я преподношу их как универсальный механизм -- для чего? Отвечаю -- для выбора нужного среза данных. Что такое проекция? Это POCO объект с нужным набором полей, может включать в себя поля из одной или нескольких ORM Entity, целые объекты
Эти проекции получается часть модели? Затем проекции мапятся во viewmodel?
hVosttвычисляемые поля и аггрегации.

Могут содержать логику?

Зависит от задачи. Как я уже неоднократно говорил, мы изготавливаем ПО различного уровня сложности, для самых различных применений. У нас нет одной единственной серебяной пилюли, одного универсального решения для всех задач.

Делали CRM, у нас было несколько слоёв, с максимальным разделением ответственности. Делаем небольшую службу маленьким REST для периодического дёргания из вне -- зачем мы будем корячиться и убивать ресурсы на сложную ветвистую архитектуру?

По вопросам skyANA упорно складывается ощущение, что он думает мы один единственный проект уже 10 лет пилим, как у них. И поэтому взаимопонимания не случается. Это прискорбно.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800876
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttПо вопросам skyANA упорно складывается ощущение, что он думает мы один единственный проект уже 10 лет пилим, как у них. И поэтому взаимопонимания не случается. Это прискорбно.Зря ты так думаешь.

Я не пилю Абрикос 10 лет, так как пришёл в компанию 10 января 2012 года. А общий стаж у меня 12 лет на разных проектах в разных предметных областях, начиная с должности стажёра в CBOSS в 2012-м.
Также в свободное время я пилю свои проекты, вообще не похожие на Абрикос.

А о вас я думаю, что вы попробовав разные варианты в разных проектах, пришли на данный момент типа к вот такому универсальному.
Пока оно тебе видится идеальным. Но вот наверняка есть вероятность того, что за год ты накопишь негативного опыта и перепишешь в какой-то другой вид.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800879
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонЭти проекции получается часть модели? Затем проекции мапятся во viewmodel?

И всё же отвечу. Проекции могут как мапиться во вьюмодель, так и сами выступать конечным контейнером для данных. В случае OData это именно так. Зависит от общей концепции архитектуры. Основной, принятый принцип должен соблюдаться повсеместно, это важно для сопровождения и развития продукта.

ПарамонМогут содержать логику?

Нет, не могут. Логику содержит сам механизм проекции -- это логика, но не объект, хранящий проекцию. Поэтому проекции не относятся к слою доступа к данным.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800882
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttУ нас нет одной единственной серебяной пилюли, одного универсального решения для всех задач.Хм. Вот теперь всё понятно. Пришли к очевидному выводу: разные задачи - разные реализации.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800883
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА о вас я думаю, что вы попробовав разные варианты в разных проектах, пришли на данный момент типа к вот такому универсальному.
Пока оно тебе видится идеальным. Но вот наверняка есть вероятность того, что за год ты накопишь негативного опыта и перепишешь в какой-то другой вид.

А я и не утверждал обратного Даже пол года назад я думал немного иначе.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800889
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAhVosttУ нас нет одной единственной серебяной пилюли, одного универсального решения для всех задач.Хм. Вот теперь всё понятно. Пришли к очевидному выводу: разные задачи - разные реализации.

Я уже столкнулся с кодом, написанным «под копирку» независимо от задачи. Хорошего мало. Единожды усвоенный урок некими специалистами потом использовался как единственно возможное решение. Кое что пришлось на корню переписывать.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38800897
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAпропущено...
Хм. Вот теперь всё понятно. Пришли к очевидному выводу: разные задачи - разные реализации.

Я уже столкнулся с кодом, написанным «под копирку» независимо от задачи. Хорошего мало. Единожды усвоенный урок некими специалистами потом использовался как единственно возможное решение. Кое что пришлось на корню переписывать.Вот странный ты человек. А чего ты тогда троллишь на тему всяких Query?
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38801349
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Походу, проекции это самый приемлемый подход для работы orm с реляционной базой.
...
Рейтинг: 0 / 0
Связь один к одному EF Code First
    #38801367
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонhVostt,

Походу, проекции это самый приемлемый подход для работы orm с реляционной базой.Может стоит попробовать другой ORM?
...
Рейтинг: 0 / 0
25 сообщений из 357, страница 12 из 15
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Связь один к одному EF Code First
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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