none
вопрос по архитектуре работы с БД RRS feed

  • Вопрос

  • Добрый день. Очень интересует больше концептуальный вопрос)

    У меня есть модель Entity Framework. И свои модели. Как правильно и красиво их связать. Я сейчас просто в моделях пишу 2 метода FromClassToDb и FromDbToClass и присваиваю там свойства класса модели entity к свойствам своего класса. Но мне кажется что это очень плохое - быдло решение =) подскажите как нормально организовать работу с БД репозиторием?

    Я предполагаю что можно как-то наверно создать класс и в нем динамически получить название модели к примеру и там прописать методы эти. Может я конечно не прав.
    • Изменено Nabiullinas 26 декабря 2011 г. 5:44
    • Перемещено Abolmasov Dmitry 27 января 2012 г. 11:16 (От:Веб)
    26 декабря 2011 г. 5:38

Ответы

  • Не совсем понял вопрос, но похоже задача в том, чтобы избежать рутинного кода типа

    myModel.Name = entitiyModel.Name;

    myModel.Description = entityModel.Description;

    .... и т.д.

    В этом случае вам нужно использовать какой-то mapping классов. Для .Net существуют такие  готовые решения как AutoMapper, EmitMapper и т.д., которые, кстати, доступны и в пакетном менеджере NuGet в VisualStudio.

    C использованием этих мапперов код сократится до вида

    mapper.Map(myModel, entityModel);

    естественно, требуется некоторая настройка, но в большинстве случаев хватает поведения по умолчанию. 

    • Предложено в качестве ответа Nick Mokhnatov 28 декабря 2011 г. 19:27
    • Помечено в качестве ответа Abolmasov Dmitry 11 января 2012 г. 5:46
    27 декабря 2011 г. 7:07

Все ответы

  • Не совсем понял вопрос, но похоже задача в том, чтобы избежать рутинного кода типа

    myModel.Name = entitiyModel.Name;

    myModel.Description = entityModel.Description;

    .... и т.д.

    В этом случае вам нужно использовать какой-то mapping классов. Для .Net существуют такие  готовые решения как AutoMapper, EmitMapper и т.д., которые, кстати, доступны и в пакетном менеджере NuGet в VisualStudio.

    C использованием этих мапперов код сократится до вида

    mapper.Map(myModel, entityModel);

    естественно, требуется некоторая настройка, но в большинстве случаев хватает поведения по умолчанию. 

    • Предложено в качестве ответа Nick Mokhnatov 28 декабря 2011 г. 19:27
    • Помечено в качестве ответа Abolmasov Dmitry 11 января 2012 г. 5:46
    27 декабря 2011 г. 7:07
  • Уважаемый пользователь,

    Пожалуйста, не забывайте отмечать ответы, являющиемся решением проблемы.

    Спасибо.


    Для связи [mail]
    28 декабря 2011 г. 10:49