Зачем использовать элемент управления ObjectDataSource? - PullRequest
3 голосов
/ 01 апреля 2011

Мое приложение разделено на три уровня (презентация, бизнес и доступ к данным).Большинство страниц в моем приложении работают следующим образом:

[Уровень презентации]

    public override void FillData()
    {
        grid.DataSource = AnimalBll.FindAnimal(
            SessionHelper.GetLoginInfo(base.sessionId).First().Id);
        grid.DataBind();
    }

[Бизнес-уровень]

    public static DataTable FindAnimal(int id)
    {
        var result = DBHelper.GetDataTableFromSP("FindAnimal", id);
        return result;
    }

Как видите, я связываюсь напрямуюк сетке.Итак, зачем мне использовать ObjectDataSource?

Ответы [ 2 ]

5 голосов
/ 01 апреля 2011

Вы не должны - они никогда не должны использоваться в серьезных приложениях.Элемент управления ObjectDataSource препятствует разделению проблем в вашем приложении.Поскольку вы уже правильно разделили различные уровни своего приложения, ObjectDataSource вызовет только проблемы и многоуровневую ответственность.

3 голосов
/ 01 апреля 2011

Преимущество использования ODS заключается в том, что оно позволяет также автоматически обновлять и сохранять объекты. Имея то, что у вас есть сейчас, вам нужно будет перехватить соответствующее событие (row_saving?), А затем удалить новые значения и передать их в ORM для сохранения.

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

Для базового обновления типа сетки мне повезло с LinqDataSource или EntityDataSource (при условии, что вы используете L2S или EF), но опять же, для больших приложений вы захотите держаться подальше от вещей вот так (разделение проблем и все такое)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...