powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# AutoMapper dto совместить с entity
15 сообщений из 15, страница 1 из 1
c# AutoMapper dto совместить с entity
    #39537203
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Имеется сущность
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class Entity
{
     public int GlobalId { get; set; }
     public string Name{ get; set; }
}
public class EntityDto
{
     public Entity Entity { get; set; }
     public int GlobalId { get; set; }
     public string Book { get; set; }
}



Как реализовать тоже самое только средствами AutoMapper? Подскажите пожалуйста.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
foreach(var dto in dtos)
{
     var firstEntity = Context.Set<Entity>().FirstOfDefault(w => w.GlobalId == dto.GlobalId );
     var entityDto = new EntityDto
     {
           Entity = firstEntity, // свойство может быть нулевым, если нет соответствующей записи в entities
           GlobalId = dto.GlobalId, 
           Book = dto.Book 
     }
}
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39537275
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

Внутри EntityDto не может быть ссылок на Entity, только вложенные Dto.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39538743
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttNechto,

Внутри EntityDto не может быть ссылок на Entity, только вложенные Dto.

При таком раскладе, количество выводимых записей dto будет зависеть от количества записей в entity. А мне нужно наоборот, чтобы dto выдавало полный список записей, а к ним вязались существующие записи entity.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39538745
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtohVosttNechto,

Внутри EntityDto не может быть ссылок на Entity, только вложенные Dto.

При таком раскладе, количество выводимых записей dto будет зависеть от количества записей в entity. А мне нужно наоборот, чтобы dto выдавало полный список записей, а к ним вязались существующие записи entity.
LEFT JOIN что-ли?
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39538751
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

В принципе, да. Только базы данных разные, и при этом мне нужно не потерять учет изменения сущности entity через ChangeTracker
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39538837
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtohVosttNechto,

Внутри EntityDto не может быть ссылок на Entity, только вложенные Dto.

При таком раскладе, количество выводимых записей dto будет зависеть от количества записей в entity. А мне нужно наоборот, чтобы dto выдавало полный список записей, а к ним вязались существующие записи entity.
А почему в Entity не все записи?
Ведь он прав.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39539036
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoПри таком раскладе, количество выводимых записей dto будет зависеть от количества записей в entity. А мне нужно наоборот, чтобы dto выдавало полный список записей, а к ним вязались существующие записи entity.

Внутри DTO может быть другое DTO. Мысль понятна? :)
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39539037
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoВ принципе, да. Только базы данных разные, и при этом мне нужно не потерять учет изменения сущности entity через ChangeTracker

Полную задачу давайте.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39540244
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

Постараюсь объяснить по простому.
Имеется таблица с общим набором данных, структура таблицы неизмена. Мне нужно в своем приложении реализовать возможность расширить набор данных для этой таблицы, с возможностью редактирования расширеного набора данных.
Для этого я создаю dto для общей таблицы и создаю свою таблицу entity, и связываю их по ключу.
Теперь когда пользователь открывает приложение, видет полный список dto. Переходя в режим редактирования пользователь видет основную информацию и может редактивать дополнительную. Запись в таблице entity создается по мере редактирования, поэтому число записей не равно числу записей dto.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39540259
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

Не думал на тему TPT ?

В любом случае, если ты работаешь с DTO, то внутри DTO не должно быть Entity. И при любом раскладе, передавать Entity в виде вью модели или внутри вью модели -- крайне хреновое решение. Собирай только DTO, работай с ним, когда надо сохранить, доставай Entity и переноси изменений, создавай Entity и т.д. Исходи из данного подхода и жизнь твоя упростится на пару порядков.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39540260
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

Ну и EF не даст в подзапросах вытаскивать Entity. Если уж на то пошло, просто не даст и всё.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39540281
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVosttNechto,

Не думал на тему TPT ?

В любом случае, если ты работаешь с DTO, то внутри DTO не должно быть Entity. И при любом раскладе, передавать Entity в виде вью модели или внутри вью модели -- крайне хреновое решение. Собирай только DTO, работай с ним, когда надо сохранить, доставай Entity и переноси изменений, создавай Entity и т.д. Исходи из данного подхода и жизнь твоя упростится на пару порядков.
TPT не подойдет, так как этот подход статический. Данные в Dto могут изменяться.

Я только вот понять не могу почему entity нельзя помещать в dto.
В данный момент я сделал так. Есть сборка domain в ней у меня EF. Есть сборка domainDto, в ней класс dto в который входи entity, запрос и прочие классы.
Код: c#
1.
2.
3.
4.
5.
6.
public class EntityDto
{
     public Entity Entity { get; set; }
     public int GlobalId { get; set; }
     public string Book { get; set; }
}


Структура приложения Mvvm, из модели я отправляю набор данных entity в сборку domainDto, там это дело соединяю и возвращаю в модель. В результате я могу редактировать и сохранять в модели этот набор данных напрямую в БД.
Выходит так, что сборка domainDto мне нужна только как помощник чтобы собрать все во едино.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39540298
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoИмеется таблица с общим набором данных, структура таблицы неизмена. Мне нужно в своем приложении реализовать возможность расширить набор данных для этой таблицы, с возможностью редактирования расширеного набора данных.
Переведи.
У вас Модель не верна.
Вы в термих бд должны сделать. И в терминах ОРМ.
Т.е. маппинг объекта-класса на ОДНУ таблицу.
Термин DTO чисто для передачи объектов по сети и веб. Без сосояния...голые данные.
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39540302
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoЕсть сборка domainDto, в
Зачем её выделять в сборку?
...
Рейтинг: 0 / 0
c# AutoMapper dto совместить с entity
    #39540308
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NechtoИмеется таблица с общим набором данных, структура таблицы неизмена.
Дай пример.
У тебя сущность Клиент и Продавец в одной табле? И нельзя изменить?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / c# AutoMapper dto совместить с entity
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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