powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Сократить код , избавиться от копирования каждого свойства
14 сообщений из 14, страница 1 из 1
Сократить код , избавиться от копирования каждого свойства
    #39116554
AspUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Скажите а возможно сделать как-то копирование свойств циклом что-ли(а еще лучше объект в объект), чтобы не пропустить случайно что-то ?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
                Person dbRe = context.Persons.Find(myRe.Id);
                if (dbRe != null)
                {
                    dbRe.Name = myRe.Name;
                    dbRe.Active = myRe.Active;
                    dbRe.Surname = myRe.Surname;
                    dbRe.NameP = myRe.NameP;
                    dbRe.Patronymic = myRe.Patronymic;
                    dbRe.BornDate = myRe.BornDate;
                    dbRe.Biography = myRe.Biography;
                    dbRe.Achievements = myRe.Achievements;
                    dbRe.Description = myRe.Description;
                    dbRe.Photo = myRe.Photo;

                    context.SaveChanges();
               }
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116563
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, но не нужно.
Более чем в половине раз оказывается нужным что-то пропустить.
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116565
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать AutoMapper.
Можно в цикле перебрать все свойства через рефлексию.

Но в обоих случаях ты потом не сможешь найти все использования конкретного свойства через Find References
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116567
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы ничего не потерялось, можно этот код сгенерировать хотя бы в окно output, скопипастить и почистить от ненужного.
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116570
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ещё через MemberwiseClone или сериализацию/десериализацию.
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116658
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AspUser,

AutoMapper
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116679
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AutoMapper не совсем, вроде как, для этого придуман. Ну насколько я правильно понял задачу ТСа, то shallow или deep copy нужны.
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116697
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAМожно ещё через MemberwiseClone или сериализацию/десериализацию.А, нет.

myRe и dbRe же разного типа? Тогда AutoMapper, но и так можно оставить :)
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116721
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AutoMapper, насколько я знаю, не гарантирует копирование один-в-один. А в примере уже и так все отмаплено, почти как по DTO паттерну (почти, потому как Find используется прямо в маппинге).
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39116752
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronAutoMapper, насколько я знаю, не гарантирует копирование один-в-один. А в примере уже и так все отмаплено, почти как по DTO паттерну (почти, потому как Find используется прямо в маппинге).

AutoMapper будет копировать так, как задашь в конфигурации маппинга, по умолчанию копирует свойства по имени, вроде то, что надо. А если что-то надо изменить, это легко и гибко делается в конфигурации.
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39117227
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAА, нет.

myRe и dbRe же разного типа? Тогда AutoMapper, но и так можно оставить :)
Если один в один, то можно сериализовать в xml объект одного типа, а поднять другого. Я так делал 100500 лет назад когда использовал asp.net web service.
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39117260
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВЯ так делал 100500 лет назад когда использовал asp.net web service.
Мы тоже еще используем WCF. Значит, я тоже суперстар :)
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39117291
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronМы тоже еще используем WCF. Значит, я тоже суперстар :)
Ну... wcf крутейшая штука!
...
Рейтинг: 0 / 0
Сократить код , избавиться от копирования каждого свойства
    #39117293
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВAxeleronМы тоже еще используем WCF. Значит, я тоже суперстар :)
Ну... wcf крутейшая штука!
Еще бы! А ты как думал? :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Сократить код , избавиться от копирования каждого свойства
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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