|
Копирование объекта
|
|||
---|---|---|---|
#18+
EF6. MsSQL2017 Есть объект Order. По сути это заказ. OrderId -PK Нужно его скопировать Хотелось бы примерно так Код: sql 1. 2. 3. 4. 5. 6. 7.
Но не дает добавить Код: sql 1.
И приходится просто все поля order присваивать newOrder. Есть ли более элегантный выход? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2019, 10:34 |
|
Копирование объекта
|
|||
---|---|---|---|
#18+
авторИ приходится просто все поля order присваивать newOrder. Да. Потому что две разных ссылки на один объект и два разных объекта это совершенно разные вещи. авторЕсть ли более элегантный выход? Нет. Иначе был бы элегантный способ клонирования людей просто выдавая им новые паспорта (ID). Единственное что можно посоветовать - возьми AutoMapper - в случае копирования большого количества свойств он большую часть работы сделает за тебя сам. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2019, 10:45 |
|
Копирование объекта
|
|||
---|---|---|---|
#18+
fkthat, Спасибо. Уже и сам понял. Да просто много тупых слов в коде, хотел сократить))) Оставлю как есть. Просто сделаю отдельным методом, что бы логику основную не засорять ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2019, 11:13 |
|
Копирование объекта
|
|||
---|---|---|---|
#18+
На самом деле можно сделать так, как ты хочешь Код: c# 1. 2. 3. 4.
Что-то типа того. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2019, 12:03 |
|
Копирование объекта
|
|||
---|---|---|---|
#18+
Shocker.Pro, Да, в принципе, можно даже и затреканную сущность отаттачить, сбросить ИД, а потом приаттачить как новую, но это все какие-то перверсии. Сущность есть сущность, хочешь новую сущность - создавай уже тогда по-нормальному новую сущность, а то иначе это как ипотеку по другому паспорту получать. Как вариант быстрого клонирования, если AutoMapper совсем уж претит по каким-то непонятным причинам, можно (с определенными ограничениями): Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2019, 12:21 |
|
Копирование объекта
|
|||
---|---|---|---|
#18+
fkthat Как вариант быстрого клонирования, если AutoMapper совсем уж претит по каким-то непонятным причинам, можно (с определенными ограничениями): Да, автомаппер может быть неудобен в некоторых случаях. fkthat Да, в принципе, можно даже и затреканную сущность отаттачить, сбросить ИД, а потом приаттачить как новую, но это все какие-то перверсии. fkthat это как ипотеку по другому паспорту получать. ID сбросил - всё, это новая сущность. неважно, как ты ее инициализировал. Для плоской сущности разницы нет, надо смотреть, какие там зависимости будут тянуться, и не сломается ли бизнес-логика при клонировании тем или иным способом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2019, 12:26 |
|
Копирование объекта
|
|||
---|---|---|---|
#18+
Shocker.Pro ID сбросил - всё, это новая сущность. неважно, как ты ее инициализировал. Имхо, с т.з. ОО и прочего ДДД, ИД сущности - это, скорее, указатель на неё. А ИД в виде какого-то целого или гуидного или т.п. поля - это просто что-то типа костыля, для осуществления айдентити-меппинга на запись в базе. В совершенно "идеальном" ОРМе, которым где-то, наверное, пользуются розовые пони-разработчики, каких-либо ИДшек базы в самой объектной модели вообще быть не должно. Автомеппер неудобен ровно настолько же, насколько неудобна стамеска, когда ей шурупы заворачивают. Для меня автомеппер это просто "тупая" тулза, которая сокращает затраты на написание кода копирования чего-либо во что-либо, а проблемы с ним начинаются как раз тогда, когда его пытаются заставить что-то более интеллектуальное делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2019, 13:26 |
|
|
start [/forum/topic.php?fid=17&fpage=3&tid=1349091]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 250ms |
total: | 368ms |
0 / 0 |