EntityConnection.ConnectionString Свойство

Определение

Возвращает или задает строку соединения EntityConnection.Gets or sets the EntityConnection connection string.

public:
 virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public override string ConnectionString { get; set; }
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String

Значение свойства

Строка подключения, необходимая для установления начального подключения к источнику данных.The connection string required to establish the initial connection to a data source. Значение по умолчанию - пустая строка.The default value is an empty string. Для закрытого соединения возвращается текущее установленное значение.On a closed connection, the currently set value is returned. Если значение не было задано, возвращается пустая строка.If no value has been set, an empty string is returned.

Исключения

Предпринята попытка установить свойство ConnectionString после инициализации EntityConnection из MetadataWorkspace.An attempt was made to set the ConnectionString property after the EntityConnection's MetadataWorkspace was initialized. MetadataWorkspace инициализируется при создании экземпляра EntityConnection через перегрузку, принимающую как параметр MetadataWorkspace или при открытии экземпляра EntityConnection.The MetadataWorkspace is initialized either when the EntityConnection instance is constructed through the overload that takes a MetadataWorkspace as a parameter, or when the EntityConnection instance has been opened.

В строке подключения предоставлено недопустимое ключевое слово или не предоставлено обязательное.An invalid connection string keyword has been provided or a required connection string keyword has not been provided.

Примеры

В следующем примере показано использование класса EntityConnectionStringBuilder в сочетании с классом SqlConnectionStringBuilder.The following example demonstrates how to use the EntityConnectionStringBuilder in conjunction with a SqlConnectionStringBuilder. Код задает свойства SqlConnectionStringBuilder для создания SqlConnection строки, предоставляющей часть строки подключения базового поставщика.The code sets properties of a SqlConnectionStringBuilder to create a SqlConnection string that supplies part of the underlying provider connection string. Обратите внимание, что имя Provider не может быть задано с помощью SqlConnectionStringBuilder, поскольку оно не использует допустимый синтаксис SqlConnection.Note that the Provider name cannot be set by using the SqlConnectionStringBuilder, because it does not use valid SqlConnection syntax. Код создает EntityConnectionную строку, настроив свойства EntityConnectionStringBuilder.The code creates the EntityConnection string by setting EntityConnectionStringBuilder properties.


// Specify the provider name, server and database.
string providerName = "System.Data.SqlClient";
string serverName = ".";
string databaseName = "AdventureWorks";

// Initialize the connection string builder for the
// underlying provider.
SqlConnectionStringBuilder sqlBuilder =
    new SqlConnectionStringBuilder();

// Set the properties for the data source.
sqlBuilder.DataSource = serverName;
sqlBuilder.InitialCatalog = databaseName;
sqlBuilder.IntegratedSecurity = true;

// Build the SqlConnection connection string.
string providerString = sqlBuilder.ToString();

// Initialize the EntityConnectionStringBuilder.
EntityConnectionStringBuilder entityBuilder =
    new EntityConnectionStringBuilder();

//Set the provider name.
entityBuilder.Provider = providerName;

// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = providerString;

// Set the Metadata location.
entityBuilder.Metadata = @"res://*/AdventureWorksModel.csdl|
                            res://*/AdventureWorksModel.ssdl|
                            res://*/AdventureWorksModel.msl";
Console.WriteLine(entityBuilder.ToString());

using (EntityConnection conn =
    new EntityConnection(entityBuilder.ToString()))
{
    conn.Open();
    Console.WriteLine("Just testing the connection.");
    conn.Close();
}
' Specify the provider name, server and database.
Dim providerName As String = "System.Data.SqlClient"
Dim serverName As String = "."
Dim databaseName As String = "AdventureWorks"

' Initialize the connection string builder for the
' underlying provider.
Dim sqlBuilder As New SqlConnectionStringBuilder

' Set the properties for the data source.
sqlBuilder.DataSource = serverName
sqlBuilder.InitialCatalog = databaseName
sqlBuilder.IntegratedSecurity = True

' Build the SqlConnection connection string.
Dim providerString As String = sqlBuilder.ToString

' Initialize the EntityConnectionStringBuilder.
Dim entityBuilder As New EntityConnectionStringBuilder

'Set the provider name.
entityBuilder.Provider = providerName
' Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = providerString
' Set the Metadata location to the current directory.
entityBuilder.Metadata = "res://*/AdventureWorksModel.csdl|" & _
                            "res://*/AdventureWorksModel.ssdl|" & _
                            "res://*/AdventureWorksModel.msl"

Console.WriteLine(entityBuilder.ToString)

Using conn As EntityConnection = New EntityConnection(entityBuilder.ToString)
    conn.Open()
    Console.WriteLine("Just testing the connection.")
    conn.Close()
End Using

Комментарии

Строка подключения EntityClient состоит из последовательности пар параметров "ключевое слово-значение", разделенных точкой с запятой.An EntityClient connection string consists of a sequence of keyword/value parameter pairs separated by semicolons. Знак равенства (=) соединяет каждое ключевое слово и его значение.The equals sign (=) connects each keyword and its value. В следующей таблице перечислены допустимые имена для значений ключевых слов в строке соединения ConnectionString.The following table lists the valid names for keyword values in the ConnectionString.

Ключевое словоKeyword ОписаниеDescription
Provider Необходимо, если не задано ключевое слово Name.Required if the Name keyword is not specified. Имя поставщика, которое используется для получения объекта DbProviderFactory, относящегося к базовому поставщику.The provider name, which is used to retrieve the DbProviderFactory object for the underlying provider. Это - постоянное значение.This value is constant.

Если ключевое слово Name не включено в строку подключения, требуется непустое значение ключевого слова Provider.When the Name keyword is not included in the connection string, a non-empty value for the Provider keyword is required. Это ключевое слово является взаимоисключающим по отношению к ключевому слову Name.This keyword is mutually exclusive with the Name keyword.
Provider Connection String Необязательный элемент.Optional. Указывает зависящую от поставщика строку соединения, которая передается в базовый источник данных.Specifies the provider-specific connection string that is passed to the underlying data source. Эта строка соединения должна быть выражена с помощью пар «ключевое слово/значение», допустимых для этого поставщика данных.This connection string is expressed by using valid keyword/value pairs for the data provider. Применение недопустимого ключевого слова Provider Connection String приводит к возникновению ошибки времени выполнения при его проверке в источнике данных.An invalid Provider Connection String will cause a run-time error when it is evaluated by the data source.

Это ключевое слово является взаимоисключающим по отношению к ключевому слову Name.This keyword is mutually exclusive with the Name keyword.

Значение Provider Connection String должно быть заключено в кавычки.The value of the Provider Connection String must be surrounded by quotes. Ниже представлен пример такого кода.The following is an example:

Provider Connection String ="Server=serverName; User ID = userID";

Следующий пример работать не будет:The following example is not going to work:

Provider Connection String =Server=serverName; User ID = userID
Metadata Необходимо, если не задано ключевое слово Name.Required if the Name keyword is not specified. Разделенный вертикальным каналом список каталогов, файлов и расположений ресурсов, в котором выполняется поиск сведений о модели и сопоставлении.A pipe-delimited list of directories, files, and resource locations in which to look for model and mapping information. Ниже представлен пример такого кода.The following is an example:

Metadata=

c:\model | c:\model\sql\mapping.msl;

Пустые пространства, расположенные с обеих сторон вертикальной черты (
), не учитываются.Blank spaces on each side of the pipe separator are ignored.

Это ключевое слово является взаимоисключающим по отношению к ключевому слову Name.This keyword is mutually exclusive with the Name keyword.
Name По желанию можно определить имя соединения в файле конфигурации приложения, в котором предоставляются необходимые для строки соединения пары «ключевое слово/значение».The application can optionally specify the connection name in an application configuration file that provides the required keyword/value connection string values. В этом случае нельзя задавать эти пары непосредственно в строке соединения.In this case, you cannot supply them directly in the connection string. Применение ключевого слова Name в файле конфигурации не допускается.The Name keyword is not allowed in a configuration file.

Если в строке соединения не содержится ключевое слово Name, то необходимо задать непустые значения для ключевого слова Provider.When the Name keyword is not included in the connection string, a non-empty values for Provider keyword is required.

Это ключевое слово является взаимоисключающим по отношению к другим ключевым словам строки соединения.This keyword is mutually exclusive with all the other connection string keywords.

Приложение может предоставлять непосредственно в ключевое слово/значение ConnectionString свойства, либо можно задать значение для Name ключевое слово.The application can supply the keyword/values directly in the ConnectionString property, or it can specify a value for the Name keyword. Если Name указывается ключевое слово, ключевое слово/значения строки подключения извлекаются из файла конфигурации приложения, следующим образом:If the Name keyword is specified, the connection string keyword/values are retrieved from an application configuration file, as follows:

Name=AdventureWorksEntities;

Если Name используется ключевое слово в ConnectionString свойство, другие ключевые слова не допускаются.If the Name keyword is used in the ConnectionString property, other keywords are not allowed. Ключевое слово Name ссылается на именованную строку подключения, которая хранится в разделе connectionStrings в файле конфигурации приложения, как показано в следующем примере.The Name keyword refers to a named connection string that is stored in the connectionStrings section in an application configuration file, as shown in the following example. Значения Provider, Metadataи Provider Connection String извлекаются из файла конфигурации во время выполнения.The Provider, Metadata, and Provider Connection String values are retrieved from the configuration file at run time.

Пары «ключевое слово/значение» могут быть также заданы непосредственно в свойстве ConnectionString, как показано в следующем примере.The keyword/value pairs can also be supplied directly in the ConnectionString property, as shown in the following example. В этом случае ключевое слово Name не используется.In this case, the Name keyword is not used.

"Provider=System.Data.SqlClient;
Metadata=c:\metadata|c:\Metadata\Sql;
Provider Connection String= 'Data Source=localhost;
    Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60' "

Чтобы избежать случайного размещения таких объектов, как System.Data.Common.CommandTrees и ObjectContext синхронизации с их метаданными, EntityConnection должны блокировать свои метаданные.To avoid inadvertently putting objects such as System.Data.Common.CommandTrees and ObjectContext out of sync with their metadata, EntityConnection must lock its metadata. После блокировки метаданных изменения в строке подключения не допускаются.No changes to the connection string are allowed after the metadata is locked. Ниже приведены два сценария блокировки метаданных.The following are two scenarios in which metadata is locked:

При загрузке метаданных EntityConnection проверяет, что концептуальная модель, модель хранения и файл сопоставления существуют.When metadata is loaded, the EntityConnection verifies that the conceptual model, the storage model, and the mapping file are all present.

Применяется к

Дополнительно