Содержание






Скачать 420.79 Kb.
НазваниеСодержание
страница4/6
Дата публикации30.11.2014
Размер420.79 Kb.
ТипПрактическая работа
top-bal.ru > Право > Практическая работа
1   2   3   4   5   6

var products = this.GetDataSet(FederationName, DistributionName, Guid.Empty, false, "select * from products where ProductId = @productId", new SqlParameter("@productId", productId);



  • if (products.Tables.Count > 0)

  • {

  • ...

  • }



      1. Таким же образом замените выделенный код в методе GetAllProducts.

        1. (Фрагмент кода ― SQL Azure Federation ― Ex2 GetAllProducts― CS)

        1. C#

        1. public List GetAllProducts()

        2. {

        3. // нефедеративная таблица

        4. var listProducts = new List
          ();

        5. var products = this.GetDataSet(FederationName, DistributionName, Guid.Empty, false, "select * from products");



        6. if (products.Tables.Count > 0)

        7. {

        8. ...

        9. }



      1. Нажмите клавиши CTRL+S , чтобы сохранить изменения.





      1. Задача 2. Добавление кода для выполнения операций CRUD с федеративной таблицей

      2. Как и с операциями SELECT, для выполнения операций CRUD с федеративной базой данных достаточно внести одно изменение — добавить инструкцию USE FEDERATION, чтобы направить запрос нужному члену федерации. В этой задаче вы вносите необходимые изменения в приложение для добавления, обновления и удаления заказа в базе данных с федерациями.

      1. Если файл FederationDb.cs, находящийся в папке Models, еще не открыт, откройте его.

      2. Вы должны указать член федерации, в который хотите добавить заказ. Добавьте инструкцию ^ USE FEDERATION и задайте идентификатор customerId из диапазона члена федерации. Для этого найдите метод InsertOrder и добавьте в его начало следующий код.

        1. (Фрагмент кода ― SQL Azure Federation ― Ex2 InsertOrder ― CS)

        1. C#

        1. private void InsertOrder(Order order)

        2. {

        3. var useFederationSatatement = this.GetUseFederationStatement(FederationName, DistributionName, order.CustomerId, true);

        4. var insertOrderStatement = "INSERT INTO ORDERS (CustomerId, OrderId, OrderDate) VALUES (@customerId, @orderId, @orderDate)";

        5. ...

        6. }



      1. Добавьте следующий код для выполнения инструкции USE FEDERATION после установки соединения с сервером.

        1. (Фрагмент кода ― SQL Azure Federation ― Ex2 InsertOrderUseFederatedConnection― CS)

        1. C#

        1. private void InsertOrder(Order order)

        2. {

        3. ...



        4. using (var connection = new SqlConnection(this.connectionString))

        5. {

        6. connection.Open();



        7. using (var command = connection.CreateCommand())

        8. {

        9. command.CommandText = useFederationSatatement;

        10. command.ExecuteNonQuery();

        11. }

        12. ...

        13. }



      1. Таким же образом вы должны указать член федерации, где находится обновляемый заказ. Добавьте следующий код в начало метода UpdateOrder.

        1. (Фрагмент кода ― SQL Azure Federation ― Ex2 UpdateOrder― CS)

        1. C#

        1. private void UpdateOrder(Order order)

        2. {

        3. var useFederationSatatement = this.GetUseFederationStatement(FederationName, DistributionName, order.CustomerId, true);

        4. var updateOrderStatement = "UPDATE ORDERS SET OrderDate = @orderDate WHERE OrderId = @orderId";

        5. ...

        6. }



      1. Добавьте следующий код для выполнения инструкции USE FEDERATION после установки соединения.

        1. (Фрагмент кода ― SQL Azure Federation ― Ex2 UpdateOrderConnection― CS)

        1. C#

        1. private void UpdateOrder(Order order)

        2. {

        3. ...



        4. using (var connection = new SqlConnection(this.connection

        5. {

        6. connection.Open();



        7. using (var command = connection.CreateCommand())

        8. {

        9. command.CommandText = useFederationSatatement;

        10. command.ExecuteNonQuery();

        11. }



        12. ...

        13. }



      1. И наконец, добавьте следующий код в метод DeleteOrder.

        1. (Фрагмент кода ― SQL Azure Federation ― Ex2 DeleteOrder― CS)

        1. C#

        1. public void DeleteOrder(Guid customerId, Guid orderId)

        2. {

        3. var useFederationSatatement = this.GetUseFederationStatement(FederationName, DistributionName, customerId, true);

        4. ...

        5. }



      1. Добавьте следующий код для выполнения инструкции USE FEDERATION после установки соединения.

        1. (Фрагмент кода ― SQL Azure Federation ― Ex2 DeleteOrderConnection― CS)

        1. C#

        1. private void DeleteOrder(Order order)

        2. {

        3. ...



        4. using (var connection = new SqlConnection(this.connectionString))

        5. {

        6. connection.Open();



        7. using (var command = connection.CreateCommand())

        8. {

        9. command.CommandText = useFederationSatatement;

        10. command.ExecuteNonQuery();

        11. }

        12. ...

        13. }



      1. Нажмите клавиши CTRL+S, чтобы сохранить изменения.







      1. Задача 3. Добавление кода для выполнения всеобъемлющих запросов

      2. Члены федерации — это базы данных, которые управляются системой и обеспечивают вычислительные мощности для части данных федерации. Приложение, использующее базу данных с федерацией, должно учитывать, что получение всех элементов из федеративной таблицы может создать всеобъемлющий запрос, когда запрашиваются данные из нескольких баз данных. В этой задаче вы добавите логику для получения всех данных из базы данных с федерациями.

      1. Если файл FederationDb.cs, находящийся в папке Models, еще не открыт, откройте его.

      2. Вставьте следующий код в метод FanOut. Этот метод будет вызываться внутри методов GetAllCustomers и GetAllOrders.

        1. (Фрагмент кода ― SQL Azure Federation ― Ex2 FanOut― CS)

        1. C#

        1. private DataSet FanOut(string sqlCommand)

        2. {

        3. Guid? federatedKey = Guid.Empty;

        4. DataSet dataToReturn = null;

        5. var sqlCommandText = sqlCommand;



        6. using (var tempData = new DataSet())

        7. {

        8. do

        9. {

        10. using (var data = new DataSet())

        11. {

        12. using (var connection = new SqlConnection(this.connectionString))

        13. {

        14. connection.Open();



        15. / / Маршрут соединения к заданному члену федерации

        16. using (var command = connection.CreateCommand())

        17. {

        18. command.CommandText = this.GetUseFederationStatement(FederationName, DistributionName, (Guid)federatedKey, false);

        19. command.ExecuteNonQuery();



        20. // Возвращает DataSet

        21. using (var dataAdapter = new SqlDataAdapter(sqlCommandText, connection))

        22. {

        23. dataAdapter.Fill(data);

        24. }



        25. // Слияние данных во временный набор данных

        26. tempData.Merge(data);



        27. // Получение следующего высокого значения диапазона из метаданных

        28. command.CommandText = "SELECT CAST(range_high as uniqueidentifier) FROM sys.federation_member_distributions";

        29. var nextRange = command.ExecuteScalar();



        30. if (nextRange == DBNull.Value)

        31. {

        32. federatedKey = null;

        33. }

        34. else

        35. {

        36. federatedKey = Guid.Parse(nextRange.ToString());

        37. }

        38. }

        39. }

        40. }

        41. }

        42. while (federatedKey != null);



        43. dataToReturn = tempData;

        44. }



        45. return dataToReturn;

        46. }



      1. Нажмите клавиши CTRL+S, чтобы сохранить изменения.





    1. Проверка

      1. Теперь вы должны запустить приложение в эмуляторе вычислений для проверки функциональности с учетом изменений, которые были внесены для указания целевой базы данных с федерациями.

      1. Для запуска приложения в локальном эмуляторе нажмите клавишу F5 в среде Visual Studio.

      2. В браузере откроется страница приложения по умолчанию. На этой странице будут отображены заказы всех клиентов.



        1. Рис.

        1. Домашняя страница практической работы по федерациям SQL Azure



      1. Щелкните Создать новый заказ. Вы будете перенаправлены на страницу Создание заказа.

      2. Нажмите Добавить позицию и добавьте в заказ две новые позиции: 5 модулей Fusion Generator Module 5 kV и 7 кронштейнов Titanium Extension Bracket Right Hand.



        1. Рис.

        1. Добавление позиций заказа в новый заказ



      1. Нажмите кнопку Создать для сохранения нового заказа. Новый заказ должен появиться в списке заказов.



        1. Рис.

        1. Отображение списка заказов



      1. Теперь найдите заказ, созданный в предыдущем шаге, и нажмите кнопку Изменить. Вы будете перенаправлены на страницу Изменение заказа. Удалите последнюю позицию заказа и нажмите кнопку Сохранить.



        1. Рис.

        1. Изменение заказа

      1. После этого заказ останется в списке заказов, но на этот раз только с одной позицией. Теперь нажмите кнопку Удалить, чтобы удалить заказ из базы данных.



        1. Рис.

        1. Удаление заказа



      1. Закройте браузер.





      1. Упражнение 3. Работа с федератив-ными таблицами с помощью Entity Framework

    1. В этом упражнении вы узнаете, как разрабатывать приложения, взаимодействующие с федеративными таблицами, с помощью ADO.NET Entity Framework.

    2. Задача 1. Добавление кода для запросов к федеративным таблицам

      1. Как и в предыдущем упражнении, перед каждым запросом необходимо выполнить инструкцию ^ USE FEDERATION для указания целевого члена федерации. В этой задаче вы добавите в приложение логику для запроса данных из разных таблиц, содержащихся в базе данных с федерациями, с помощью Entity Framework.

      1. Откройте Visual Studio от имени администратора, выбрав ^ Пуск | Все программы | Microsoft Visual Studio 2010, щелкнув правой кнопкой мыши значок Microsoft Visual Studio 2010 и выбрав команду Запуск от имени администратора.

      2. В меню Файл выберите пункт Открыть, затем щелкните Проект/Решение.

      3. В диалоговом окне Открытие проекта перейдите в папку Source\Ex03-WorkingWithFederatedTablesWithEntityFramework\Begin, выберите в ней файл FederationsWithEF.sln и нажмите кнопку Открыть.



        1. Рис.

          1. Решение Begin



      1. Сделайте FederationsWithEF запускаемым автоматически проектом, щелкнув его правой кнопкой мыши в обозревателе решений и выбрав Назначить запускаемым автоматически проектом.



        1. Рис.

          1. Назначение запускаемого автоматически проекта



      1. Обновите определение службы, чтобы задать параметры конфигурации, необходимые для доступа к серверу SQL Azure. Для этого разверните папку Roles проекта FederationsWithEF в обозревателе решений, щелкните правой кнопкой мыши FederationsWithEF.Web и выберите пункт Свойства.


  • 1   2   3   4   5   6

    Похожие:

    Содержание iconПрограмма «Базовое образование» (краткое содержание программ отдельных...
    В данном разделе приводится основное содержание программы «Базовое образование». Полное содержание программ по всем учебным предметам,...

    Содержание iconСодержание содержание 2 введение 4
    Настоящий документ является кратким описанием возможностей системы управления abo. Cms

    Содержание iconСущность и содержание межотраслевого баланса Содержание
    Базылев Н. И., Гурко С. П., Базылева М. Н. Макроэкономика: Учеб пособие для вузов. М.: Инфра-м, 2003. 190с

    Содержание iconСодержание учебного предмета
    Предметное содержание устной и письменной речи соответствует образовательным и воспитательным целям, а также интересам и возрастным...

    Содержание iconСодержание самостоятельной работы студентов
    Содержание учебного материала, лабораторные работы и практические занятия, самостоятельная работа обучающихся

    Содержание iconОсновная общеобразовательная программа моу «Кекоранская сош» Дошкольной...
    Содержание психолого-педагогической работы по освоению образовательной области «Физическая культура»

    Содержание iconПояснительная записка Общие сведения об учреждении Содержание образовательного...
    Содержание психолого-педагогической работы по освоению образовательных областей

    Содержание iconПлан учебно-воспитательной работы на 2013 2014 учебный год содержание
    Его содержание отвечает условиям переходного периода на организацию образовательного процесса в соответствии с федеральным государственным...

    Содержание iconТема: Разыгрывание сказки Л. Толстого «Три медведя»
    Программное содержание: Продолжить учить детей передавать содержание сказки на основе построения ее наглядной модели, использовать...

    Содержание iconПрограммное содержание
    Программное содержание: Познакомить детей с разным строительным материалом. Учить различать и называть такие строительные детали,...



    Школьные материалы


    При копировании материала укажите ссылку © 2018
    контакты
    top-bal.ru

    Поиск