Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка приложений баз данных (Visual Studio 2008).docx
Скачиваний:
143
Добавлен:
26.03.2016
Размер:
1.01 Mб
Скачать

Удаление

Чтобы удалить элемент, удалите его из коллекции, в которую он входит, а затем вызовите метод SubmitChangesвDataContext, чтобы применить изменение.

Примечание.LINQ to SQL не распознает операции каскадного удаления. Если требуется удалить строку в таблице, имеющей ограничения, см. разделКак удалять строки из базы данных (LINQ to SQL).

В следующем примере из базы данных извлекается клиент, CustomerID которого равен 98128. Затем, после подтверждения извлечения строки клиента, вызывается метод DeleteOnSubmit, необходимый для удаления объекта из коллекции. Наконец, вызывается методSubmitChangesдля передачи удаления в базу данных.

Northwnd nw = new Northwnd(@"northwnd.mdf");

var deleteIndivCust =

from cust in nw.Customers

where cust.CustomerID == "98128"

select cust;

if (deleteIndivCust.Count() > 0)

{

nw.Customers.DeleteOnSubmit(deleteIndivCust.First());

nw.SubmitChanges();

}

Непосредственное выполнение команд sql(linQtoSql)

Если предположить наличие подключения DataContext, для выполнения команд, которые не возвращают объекты, можно воспользоваться методомExecuteCommand.

В следующем примере SQL Server увеличивает цену за единицу на 1.

db.ExecuteCommand("UPDATE Products SET UnitPrice = UnitPrice + 1.00");

LINQ to Entities

EDM (EntitiesDataModel) используется для предоставления реляционных данных в виде объектов среды .NET. Благодаря этому поддержка LINQ эффективно реализуется на уровне объектов, что позволяет составлять запросы баз данных на языке, используемом для построения бизнес-логики. Эта функция называется LINQ to Entities. Дополнительные сведения см. в разделеLINQ to Entities.

Стратегии доступа к данным

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

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

Windows Forms

Как правило, в формах Windows Forms следует использовать наборы данных. Формы Windows Forms обычно используются в толстых клиентах, в которых форма не создается и не удаляется (вместе со своими данными) при каждой пользовательской операции, как это имеет место в Web Forms. Кроме того, приложения Windows Forms традиционно отличаются сценариями доступа к данным, которые получают преимущества от сохранения кэша записей, например, при отображение в форме записей одна за другой. В частности, рекомендуется использовать наборы данных в следующих ситуациях:

  • если одни и те же записи используются многократно, например, при предоставлении пользователю возможности перемещения между записями;

  • при использовании архитектуры привязки данных Windows Forms, которая специально предназначена для работы с наборами данных;

  • во всех случаях, перечисленных выше для Web Forms.

Следует использовать запрос объекта TableAdapter или команду обработки данных в следующих случаях:

  • при получении из базы данных скалярного значения;

  • при выполнении операции, не являющейся запросом, например команды DDL;

  • при получении данных, доступных только для чтения, для отображения в форме — например, при создании отчета. Иными словами, используйте команды обработки данных в случаях, когда нет необходимости сохранять данные после осуществления доступа к ним.

Веб-формы

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

Набор данных следует использовать в следующих ситуациях:

  • при работе с несколькими отдельными таблицами или таблицами из разных источников данных;

  • при обмене данными с другими приложениями или компонентами, такими как веб-службы XML;

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

  • в случае, если обработка данных включает работу со взаимозависимыми записями (например, при поиске сведений в связанных записях);

  • если над данными нужно выполнить операции XML, например преобразования XSLT;

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

Веб-службы XML

Веб-службы XML — это приложения ASP.NET и потому они используют ту же модель, что и страницы Web Forms: веб-службы XML создаются и удаляются всякий раз, когда осуществляется их вызов. Отсюда следует, что модель доступа к данным для веб-служб XML, в основном, та же, что и для Web Forms. Однако веб-службы XML часто являются объектами промежуточного уровня и часто применяются главным образом для обмена данными с другими приложениями через Интернет.

Используйте наборы данных в следующих случаях:

  • если веб-служба XML отправляет и получает данные — например, отправляет возвращаемые значения методов, а принимает их в качестве аргументов методов. Это основное соображение при выборе способа работы с данными для веб-служб XML; даже если существуют другие соображения в пользу команд обработки данных, необходимость обмена данными с другими компонентами практически однозначно указывает на то, что следует использовать наборы данных;

  • во всех случаях, перечисленных выше для форм Web Forms.

Используйте команды обработки данных (а при необходимости — средство чтения данных) в следующих случаях:

  • веб-служба XML извлекает скалярное значение;

  • веб-служба XML выполняет операцию, не являющуюся запросом, например, команду DDL;

  • веб-служба XML вызывает хранимую процедуру для выполнения действий внутри базы данных.

*****************************************