использование более старого блока доступа к данным вместе с новой корпоративной библиотекой - PullRequest
0 голосов
/ 26 февраля 2009

Есть ли причина, по которой я не могу использовать более старую версию блока доступа к данным (sqlhelper) вместе с Enterprise Library (если я не использую ее части данных?)

Ответы [ 2 ]

1 голос
/ 26 февраля 2009

EnterpriseLibrary разбит на несколько различных библиотек, поэтому вам даже не нужно ссылаться на части, которые вам не нужны. Даже если на них есть ссылки, ничто не мешает вам смешивать и сопоставлять.

Если вы сталкиваетесь со случаями, когда у вас есть несколько классов с одинаковыми именами, на которые ссылается один и тот же класс, просто назовите их явно (или с помощью оператора using), чтобы убедиться, что вы выбрали правильный тип объекта.

Помните, что полное имя объекта включает его пространство имен, поэтому SqlHelper в одном не совпадает с SqlHelper в другом, если вы включаете пространство имен.

Веселись!

0 голосов
/ 26 февраля 2009

Я не понимаю, почему вы не можете ~ технически сделать это. Но кажется странным, что вы не хотите конвертировать его.

«Чистота» инфраструктуры EnterpriseLibarary.Data очень привлекательна.

Это также делает очень "чистый" код. Пример:

    public override IDataReader CustomersGetSingleWithOrdersReader(string customerId)
    {
        IDataReader returnReader = null;
        try
        {
            Database db = this.GetDatabase(); //encapsulate call to retrieve a database object, very simple routine
            DbCommand dbc = db.GetStoredProcCommand  ("dbo.uspCustomersGetSingleWithOrders);
    db.AddInParameter(dbc, "@CustomerID", System.Data.DbType.String, customerId);
            returnReader = db.ExecuteReader(dbc);
            return returnReader;
        }
        finally
        {
        }
    }

Вы заботитесь о 2 вещах в приведенном выше коде. Какую хранимую процедуру вызывать. Какие параметры это дать. EnterpriseLibrary.Data сделает все остальное за вас.

Из моего опыта единственное, что EnterpriseLibrary.Data не может защитить вы из (потому что это не может в этой ситуации) использует IDataReader AND Затем не закрывая его. Это большое нет-нет.

Но, как уже упоминалось, полностью квалифицированные пространства имен и тому подобное помогут вам решить проблему.

Не забывайте, что платформа EnterpriseLibrary.Data более зрелая, чем исходный DAAB.

И не забудьте одну из ошибок в DAAB 2.0.

http://weblogs.asp.net/rosherove/archive/2003/07/29/10614.aspx

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