Инструменты LINQ to SQL в Visual StudioLINQ to SQL tools in Visual Studio

LINQ to SQL — это первая технология объектно-реляционного сопоставления, выпущенная корпорацией Майкрософт.LINQ to SQL was the first object-relational mapping technology released by Microsoft. Она хорошо работает в основных сценариях и по мере возможности будет и дальше поддерживаться в Visual Studio, но активная разработка этой технологии больше не ведется.It works well in basic scenarios and continues to be supported in Visual Studio, but it's no longer under active development. Используйте LINQ to SQL при обслуживании приложения более ранних версий, в котором она уже применяется, или в простых приложениях, которые используют SQL Server и не требуют сопоставления нескольких таблиц.Use LINQ to SQL when maintaining a legacy application that's already using it, or in simple applications that use SQL Server and do not require multi-table mapping. Как правило, новые приложения, если им нужен уровень объектно-реляционного сопоставления, должны использовать Entity Framework.In general, new applications should use the Entity Framework when an object-relational mapper layer is required.

Установка средств LINQ to SQLInstall the LINQ to SQL tools

В Visual Studio классы LINQ to SQL, представляющие таблицы SQL, создаются с помощью реляционного конструктора объектов.In Visual Studio, you create LINQ to SQL classes that represent SQL tables by using the Object Relational Designer (O/R Designer). Реляционный конструктор объектов — это пользовательский интерфейс для редактирования DBML-файлов.The O/R designer is the UI for editing .dbml files. Для редактирования DBML-файлов в рабочей области конструктора требуются средства LINQ to SQL, которые по умолчанию ни с одной из рабочих нагрузок Visual Studio не устанавливаются.Editing .dbml files with a designer surface requires the LINQ to SQL tools which are not installed by default as part of any of the workloads of Visual Studio.

Чтобы установить средства LINQ to SQL, запустите установщик Visual Studio, выберите Изменить, затем перейдите на вкладку Отдельные компоненты и выберите Инструменты LINQ to SQL в категории Средства для работы с кодом.To install the LINQ to SQL tools, start the Visual Studio installer, choose Modify, then select the Individual Components tab, and then select LINQ to SQL tools under the Code Tools category.

Что такое реляционный конструктор объектовWhat is the O/R Designer

Область реляционного конструктора объектов делится на две части: область сущностей (слева) и область методов (справа).The O/R Designer has two distinct areas on its design surface: the entities pane on the left, and the methods pane on the right. Область сущностей является основной областью конструктора, отображающей классы сущностей, ассоциации и иерархии наследования.The entities pane is the main design surface that displays the entity classes, associations, and inheritance hierarchies. Область методов — это область конструктора, отображающая методы DataContext, которые сопоставлены хранимым процедурам и функциям.The methods pane is the design surface that displays the DataContext methods that are mapped to stored procedures and functions.

Реляционный конструктор объектов предоставляет визуальную область конструктора для создания классов сущностей и ассоциаций (отношений) LINQ to SQL, которые базируются на объектах в базе данных.The O/R Designer provides a visual design surface for creating LINQ to SQL entity classes and associations (relationships) that are based on objects in a database. Другими словами, реляционный конструктор объектов создает модель объекта в приложении, которая сопоставляется с объектами в базе данных.In other words, the O/R Designer creates an object model in an application that maps to objects in a database. Кроме того, он генерирует DataContext со строгим контролем ввода, который используется для отправки и получения данных между классами сущностей и базой данных.It also generates a strongly-typed DataContext that sends and receives data between the entity classes and the database. Реляционный конструктор объектов обеспечивает также функциональные возможности сопоставления сохраненных процедур и функций методам DataContext для возврата данных и заполнения классов сущностей.The O/R Designer also provides functionality to map stored procedures and functions to DataContext methods for returning data and populating entity classes. Наконец, реляционный конструктор объектов обеспечивает способность проектировать отношения наследования между классами сущностей.Finally, the O/R Designer provides the ability to design inheritance relationships between entity classes.

Открытие реляционного конструктора объектовOpen the O/R designer

Чтобы добавить в проект модель сущности LINQ to SQL, выберите Проект > Добавить новый элемент и найдите Классы LINQ to SQL в списке элементов проекта:To add a LINQ to SQL entity model to your project, choose Project > Add New Item, and then select LINQ to SQL Classes from the list of project items:

Классы LINQ-SQL

Visual Studio создает DBML-файл и добавляет его в решение.Visual Studio creates a .dbml file and adds it to your solution. Он представляет собой XML-файл сопоставления и связанные с ним файлы кода.This is the XML mapping file and its related code files.

Классы LINQ to SQL в обозреватель решений

При выборе DBML-файла в Visual Studio отображается область реляционного конструктора объектов, позволяющего создать модель визуально.When you select the .dbml file, Visual Studio shows the O/R Designer surface that enables you to visually create the model. На следующем рисунке показан конструктор после перетаскивания таблиц Northwind Customers и Orders из обозреватель сервера.The following illustration shows the designer after the Northwind Customers and Orders tables have been dragged from Server Explorer. Обратите внимание на связь между этими таблицами.Note the relationship between the tables.

Конструктор LINQ to SQL

Важно!

Реляционный конструктор объектов представляет собой простой объектно-реляционный модуль сопоставления, поскольку он поддерживает только сопоставляющие отношения 1:1.The O/R Designer is a simple object relational mapper because it supports only 1:1 mapping relationships. Другими словами, класс объекта может иметь сопоставляющее отношение только 1:1 с таблицей базы данных или представлением.In other words, an entity class can have only a 1:1 mapping relationship with a database table or view. Сложные сопоставления, например сопоставление класса сущностей с соединяемой таблицей, не поддерживаются. Для сложных сопоставлений используйте Entity Framework.Complex mapping, such as mapping an entity class to a joined table, is not supported; use the Entity Framework for complex mapping. Кроме того, конструктор является односторонним генератором объектного кода.Additionally, the designer is a one-way code generator. Это означает, что только изменения, которые вы осуществляете на области конструктора, отражаются в файле кода.This means that only changes that you make to the designer surface are reflected in the code file. Изменения, вносимые в файл кода вручную, не отражаются в реляционном конструкторе объектов.Manual changes to the code file are not reflected in the O/R Designer. Любые изменения, которые вы вручную осуществляете в файле кода принимаются, когда конструктор сохраняется и генерируется код.Any changes that you make manually in the code file are overwritten when the designer is saved and code is regenerated. Сведения о том, как добавить пользовательский код и распространить классы, создаваемые реляционный конструктор объектов, см. в разделе как: Расширение кода, созданного реляционным конструктором объектов.For information about how to add user code and extend the classes generated by the O/R Designer, see How to: Extend code generated by the O/R Designer.

Создание и настройка DataContextCreate and configure the DataContext

После добавления элемента Классы LINQ to SQL в проект и открытия реляционного конструктора объектов в пустой области конструктора отобразится пустой DataContext, готовый к настройке.After you add a LINQ to SQL Classes item to a project and open the O/R Designer, the empty design surface represents an empty DataContext ready to be configured. DataContext настраивается на основе сведений о соединении из первого перемещенного в область конструктора элемента.the DataContext is configured with connection information provided by the first item that is dragged onto the design surface. Поэтому DataContext конфигурируется с использованием информации о подключении из первого сброшенного в область конструктора элемента.Therefore, the DataContext is configured by using connection information from the first item dropped onto the design surface. Дополнительные сведения о классе DataContext см. в разделе Методы DataContext (реляционный конструктор объектов).For more information about the DataContext class see, DataContext methods (O/R Designer).

Создание классов сущностей, сопоставленных с таблицами или представлениями базы данныхCreate entity classes that map to database tables and views

Классы сущностей, которые сопоставляются с таблицами и представлениями базы данных, можно создавать путем перетаскивания таблиц или представлений из Обозревателя серверов или Обозревателя базы данных в реляционном конструкторе объектов.You can create entity classes mapped to tables and views by dragging database tables and views from Server Explorer or Database Explorer onto the O/R Designer. Как указывалось в предыдущем разделе, DataContext конфигурируется с информацией о подключении, предоставленной первым элементом, который перемещен в область конструктора.As indicated in the previous section, the DataContext is configured with connection information provided by the first item that is dragged onto the design surface. Если в реляционный конструктор объектов добавляется элемент, который использует другое подключение, то можно изменить подключение для DataContext.If a subsequent item that uses a different connection is added to the O/R Designer, you can change the connection for the DataContext. Дополнительные сведения см. в разделе Практическое руководство. создать классы LINQ to SQL, сопоставленные с таблицами и представлениями (реляционный конструктор объектов).For more information, see How to: Create LINQ to SQL classes mapped to tables and views (O/R Designer).

Создание методов DataContext, вызывающих сохраненные процедуры и функцииCreate DataContext methods that call stored procedures and functions

Методы DataContext, которые вызывают сохраненные процедуры и функции (сопоставляются с ними), можно создавать путем перетаскивания их из Обозревателя серверов или Обозревателя базы данных в реляционном конструкторе объектов.You can create DataContext methods that call (are mapped to) stored procedures and functions by dragging them from Server Explorer or Database Explorer onto the O/R Designer. Сохраненные процедуры и функции добавляются в реляционный конструктор объектов как методы DataContext.Stored procedures and functions are added to the O/R Designer as methods of the DataContext.

Примечание

Когда хранимые процедуры и функции перетаскиваются из обозревателя серверов или обозревателя баз данных в реляционный конструктор объектов, тип возвращаемого значения для создаваемого метода DataContext будет зависеть от места, в котором завершилось перетаскивание элемента.When you drag stored procedures and functions from Server Explorer or Database Explorer onto the O/R Designer, the return type of the generated DataContext method differs depending on where you drop the item. Дополнительные сведения см. в разделе Методы DataContext (реляционный конструктор объектов).For more information, see DataContext methods (O/R Designer).

Настройка DataContext для использования сохраненных процедур сохранения данных между классами сущностей и базой данныхConfigure a DataContext to use stored procedures to save data between entity classes and a database

Как утверждалось ранее, можно создавать методы DataContext, которые вызывают сохраненные процедуры и функции.As stated earlier, you can create DataContext methods that call stored procedures and functions. Кроме того, можно назначать сохраненные процедуры, которые могут использоваться для поведения среды выполнения LINQ to SQL по умолчанию, включая вставки, обновления и удаления.Additionally, you can also assign stored procedures that are used for the default LINQ to SQL run-time behavior, which performs inserts, updates, and deletes. Дополнительные сведения см. в разделе Практическое руководство. назначить хранимые процедуры для выполнения обновлений, вставок и удалений (реляционный конструктор объектов).For more information, see How to: Assign stored procedures to perform updates, inserts, and deletes (O/R Designer).

Наследование и реляционный конструктор объектовInheritance and the O/R designer

Классы LINQ to SQL, как и другие объекты, могут использовать наследование и выводиться из других классов.Like other objects, LINQ to SQL classes can use inheritance and be derived from other classes. В базе данных, отношения наследования создаются несколькими способами.In a database, inheritance relationships are created in several ways. Реляционный конструктор объектов поддерживает концепцию наследования одиночных таблиц, так как именно она обычно осуществляется в реляционных системах.The O/R Designer supports the concept of single-table inheritance as it is often implemented in relational systems. Дополнительные сведения см. в разделе Практическое руководство. настроить наследование с использованием реляционного конструктора объектов.For more information, see How to: Configure inheritance by using the O/R Designer.

Запросы LINQ to SQLLINQ to SQL queries

Классы сущностей, создаваемые реляционным конструктором объектов, предназначены для использования с LINQ.The entity classes created by the O/R Designer are designed for use with Language-Integrated query (LINQ). Дополнительные сведения см. в разделе Практическое руководство. обращаться с запросами о сведениях.For more information, see How to: Query for information.

Выделение сгенерированного DataContext и кода класса сущностей в отдельный пространства имен NamespacesSeparate the generated DataContext and entity class code into different namespaces

Реляционный конструктор объектов предоставляет свойства Контекстное пространство имен и Пространство имен сущностей в DataContext.The O/R Designer provides the Context Namespace and Entity Namespace properties on the DataContext. Эти свойства определяют, какое пространство имен DataContext и кода классов сущностей генерируется в нем.These properties determine what namespace the DataContext and entity class code is generated into. По умолчанию эти свойства пустые и DataContext классы сущностей генерируются в пространстве имен приложения.By default, these properties are empty and the DataContext and entity classes are generated into the application's namespace. Чтобы сгенерировать код в пространство имен, отличное от пространства имен приложения, введите значение в свойства Контекстное пространство имен и (или) Пространство имен сущностей.To generate the code into a namespace other than the application's namespace, enter a value into the Context Namespace and/or Entity Namespace properties.

Справочное содержимоеReference content

См. также разделSee also