Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Средство командной строки SqlMetal создает код и сопоставление компонента LINQ to SQL платформы .NET Framework. Применив параметры, которые отображаются далее в этой статье, вы можете указать SqlMetal выполнить несколько различных действий, включающих следующие действия:
- Создание исходного кода и атрибутов сопоставления или файла сопоставления на основе базы данных.
- Создание DBLM-файла для настройки на основе базы данных.
- Создание кода и атрибутов сопоставления или файла сопоставления на основе DBML-файла.
Это средство автоматически устанавливается с Visual Studio 2019 и более ранними версиями. По умолчанию файл находится в папке %ProgramFiles%\Microsoft SDKs\Windows[version]\bin. Если вы не устанавливаете Visual Studio, вы также можете получить SQLMetal-файл, скачав пакет SDK для Windows.
Примечание.
Разработчики, работающие в Visual Studio, также могут использовать реляционный конструктор объектов для создания классов сущностей. Командная строка удобна при работе с большими базами данных. Поскольку SqlMetal представляет собой программу командной строки, ее можно использовать в процессе построения.
Для запуска этого средства используйте Командную строку разработчика или PowerShell для разработчиков в Visual Studio. В командной строке введите следующую команду:
sqlmetal [options] [<input file>]
Параметры
Чтобы просмотреть текущий список параметров, в командной строке введите sqlmetal /? в каталоге установки.
Параметры соединения
| Вариант | Описание |
|---|---|
| /server:<имя> | Задает имя сервера базы данных. |
| /database:<имя> | Задает каталог базы данных на сервере. |
| /user:<имя> | Указывает идентификатор пользователя входа. По умолчанию используется аутентификация Windows. |
| /password:<пароль> | Задает пароль для входа. По умолчанию используется аутентификация Windows. |
| /conn:<строка подключения> | Задает строку подключения к базе данных. Нельзя использовать с параметрами /server, /database, /userили /password . В строке подключения не следует указывать имя файла. Вместо этого добавьте имя файла в командную строку в качестве входного файла. Например, в следующей строке указывается входной файл "c:\northwnd.mdf": sqlmetal /code:"c:\northwind.cs" /language:csharp "c:\northwnd.mdf". |
| /timeout:<секунды> | Задает время ожидания для доступа SqlMetal к базе данных. Значение по умолчанию: 0 (то есть время не ограничено). |
Параметры извлечения
| Вариант | Описание |
|---|---|
| /views | Извлекает представления базы данных. |
| /functions | Извлекает функции базы данных. |
| /sprocs | Извлекает хранимые процедуры. |
Параметры вывода
| Вариант | Описание |
|---|---|
| /dbml[:файл] | Направляет вывод в DBML-файл. Не может использоваться с параметром /map . |
| /code[:файл] | Направляет вывод в файл исходного кода. Не может использоваться с параметром /dbml . |
| /map[:файл] | Создает XML-файл сопоставления вместо атрибутов. Не может использоваться с параметром /dbml . |
Разное
| Вариант | Описание |
|---|---|
| /language:<язык> | Задает язык исходного кода. Допустимый <язык>: vb, csharp. Значение по умолчанию: определяется по расширению имени файла кода. |
| /namespace:<name> | Задает пространство имен сгенерированного кода. Значение по умолчанию: нет пространства имен. |
| /context:<тип> | Задает имя класса контекста данных. Значение по умолчанию: определяется по имени базы данных. |
| /entitybase:<тип> | Задает базовый класс для классов сущностей в сгенерированном коде. Значение по умолчанию: базовый класс для сущностей не определяется. |
| /pluralize | Автоматически преобразует имена классов и членов в форму множественного или единственного числа. Этот вариант доступен только в английской версии (США). |
| /serialization:<option> | Создает сериализуемые классы. Допустимый <параметр>: None, Unidirectional. Значение по умолчанию: None. Дополнительные сведения см. в разделе Сериализация. |
Входной файл
| Вариант | Описание |
|---|---|
| <входной файл> | Задает MDF-файл SQL Server, экспресс-выпуск, SDF-файл SQL Server Compact 3.5 или промежуточный DBML-файл. |
Замечания
Функции SqlMetal фактически выполняются в два этапа.
Метаданные базы данных извлекаются в DBML-файл.
Создается выходной файл кода.
Используя соответствующие параметры командной строки, можно получать исходный код Visual Basic или C# либо XML-файл сопоставления.
Чтобы извлечь метаданные из MDF-файла, необходимо указать его имя после всех остальных параметров.
Если не /server указан, предполагается localhost/sqlexpress .
Microsoft SQL Server 2005 выдает исключение в следующих случаях:
SqlMetal пытается извлечь хранимую процедуру, вызывающую саму себя.
Уровень вложенности хранимой процедуры, функции или представления превышает 32 уровня.
SqlMetal перехватывает это исключение и сообщает о нем в виде предупреждения.
Чтобы указать имя входного файла, добавьте имя в командную строку в качестве входного файла. Включение имени файла в строку подключения (параметром /conn ) не поддерживается.
Примеры
Создание DBML-файла, содержащего извлеченные метаданные SQL.
sqlmetal /server:myserver /database:northwind /dbml:mymeta.dbml
Создание DBML-файла, содержащего извлеченные метаданные SQL из MDF-файла, с помощью SQL Server, экспресс-выпуск.
sqlmetal /dbml:mymeta.dbml mydbfile.mdf
Создание DBML-файла, содержащего извлеченные метаданные SQL из SQL Server, экспресс-выпуск.
sqlmetal /server:.\sqlexpress /dbml:mymeta.dbml /database:northwind
Создание исходного кода из DBML-файла метаданных.
sqlmetal /namespace:nwind /code:nwind.cs /language:csharp mymetal.dbml
Создание исходного кода непосредственно из метаданных SQL.
sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs /language:csharp
Примечание.
При использовании параметра /pluralize с примером базы данных Northwind обратите внимание на следующее поведение. Когда SqlMetal создает имена типов строк для таблиц, имена таблиц представляются в единственном числе. При создании свойств DataContext для таблиц имена таблиц представляются во множественном числе. Однако таблицы в учебной базе данных Northwind уже имеют имена в форме множественного числа. Поэтому данная часть процедуры не будет иметь видимого эффекта. Если таблицам базы данных принято присваивать имена в единственном числе, то коллекциям .NET принято присваивать имена во множественном числе.