Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Сократить код , избавиться от копирования каждого свойства / 14 сообщений из 14, страница 1 из 1
30.11.2015, 16:59
    #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
30.11.2015, 17:06
    #39116563
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сократить код , избавиться от копирования каждого свойства
Можно, но не нужно.
Более чем в половине раз оказывается нужным что-то пропустить.
...
Рейтинг: 0 / 0
30.11.2015, 17:09
    #39116565
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сократить код , избавиться от копирования каждого свойства
Можно использовать AutoMapper.
Можно в цикле перебрать все свойства через рефлексию.

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

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

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

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

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


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