Какой ORM является лучшим при использовании Хранимых процедур

Одно решение состоит в том, чтобы ваш класс Flight реализовал сопоставимый интерфейс . Это гарантировало бы, что он должен реализовать метод compareTo(), где вам нужно будет определить, как сравнивать один Flight объект с другим.

7
задан Sam Saffron 11 July 2011 в 04:45
поделиться

7 ответов

SubSonic имеет превосходную поддержку sprocs. Это перенесет каждого во вспомогательный метод, и можно получить наборы со строгим контролем типов или объекты от результатов, если Вы хотите. Я показываю способ сделать это в этом сообщении в блоге. Пока Ваш sproc возвращает ту же схему, как ВЫБОР * ОТ TableName был бы, это работать с Вашими объектами SubSonic.

До генерации классов на основе Вашего дб SubSonic генерирует частичные классы, таким образом, можно расширить их по мере необходимости. Вы могли также сделать, отображения от SubSonic генерировали классы к Вашей фактической модели.

7
ответ дан 6 December 2019 в 08:45
поделиться

Дозвуковой имеет гибкое решение:

    class CustomerOrder {
        private string productName;

        public string ProductName {
            get { return productName; }
            set { productName = value; }
        }
        private int total;

        public int Total {
            get { return total; }
            set { total = value; }
        }

    }

Затем:

List<CustomerOrder> orders = Northwind.SPs.CustOrderHist("ALFKI")
        .ExecuteTypedList<CustomerOrder>();

Дозвуковой твердый стиль "швейцарского ножа" ORM.

5
ответ дан 6 December 2019 в 08:45
поделиться

В зависимости от базы данных Entity Framework или NHibernate вероятны Ваши наилучшие варианты (примеры в ссылках).

2
ответ дан 6 December 2019 в 08:45
поделиться

LINQ разработчику SQL даст Вам безопасный с точки зрения типов sprocs как методы на объекте DataContext. Можно отобразить тех, которые к объектам для операций CRUD довольно легко.

На самом деле я посреди выполнения точно этого.

1
ответ дан 6 December 2019 в 08:45
поделиться

Так как у Вас есть DBA, пишущий sprocs, я думал бы, что лучшая вещь сделать будет состоять в том, чтобы работать в тесном сотрудничестве с ним, чтобы выяснить, как отобразить таблицы на объекты, и как структурировать базу данных так, чтобы это работало с Вашей моделью предметной области. Нет ничего неправильно с sprocs, они просто требуют тесного сотрудничества между разработчиками и DBAs.

Идеально, рассматриваемый DBA является частью Вашей проектной группы...

1
ответ дан 6 December 2019 в 08:45
поделиться

Основной вопрос, который я вижу с этим, то, что путем движения с SP Вы автоматически освобождаете партию гибкости, которую Вы получаете при использовании ORM, особенно на извлечении информации. Из-за этого я уверен, что Вы не сможете использовать Все функции большей части ORM.

Например, при использовании linq2sql у Вас будет в значительной степени обертка к SPS. Можно также отобразиться, вставляют, удаляет и обновления сгенерированных объектов к хранимым процедурам. То, где Вы освобождаете много, находится на извлечении информации, и потому что запросы теперь фиксируются (и Вы могли бы получить больше информации, чем необходимые т.е. дополнительные столбцы - или создать много SPS), и на ленивой загрузке.

Обновление: Я - больше linq2sql парень, но я бросил бы второй взгляд на предположения, которые Вы берете о NHibernate. В частности, я сомневаюсь, что это вызовет порядок столбцов, поскольку это настроено с именами столбцов (см. http://nhibernate.info/blog/2008/11/23/populating-entities-from-stored-procedures-with-nhibernate.html). Это также поддерживает что-то, что я не знаю, как сделать с linq2sql: http://nhibernate.info/blog/2008/11/23/populating-entities-with-associations-from-stored-procedures-with-nhibernate.html. Отметьте, я не подразумеваю, что последний не поддерживается с linq2sql, просто что я не знаю как к ;)

0
ответ дан 6 December 2019 в 08:45
поделиться

Мне нравится способ, которым Платформа Объекта обрабатывает sprocs прямо сейчас. Можно связать sprocs с операциями грязи объекта, он даже обнаруживает, какие sprocs совпадают со свойствами объекта. Одна большая оборотная сторона прямо сейчас - то, при соединении одного sproc с объектом, необходимо связать все операции грязи с sproc.

Эта статья EF Sproc имеет некоторые яркие примеры того, как использовать sprocs в EF и имеет некоторые действительно хорошие Дополнительные методы для нее также.

0
ответ дан 6 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: