Поделиться через


EntityConnection.ConnectionString Свойство

Определение

Возвращает или задает EntityConnection строку подключения.

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

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

Строка подключения, необходимая для установления первоначального подключения к источнику данных. Значение по умолчанию: пустая строка. При закрытом соединении возвращается текущее значение. Если значение не задано, возвращается пустая строка.

Исключения

Предпринята попытка задать ConnectionString свойство после EntityConnectionинициализации объекта MetadataWorkspace . Инициализируется MetadataWorkspace либо при EntityConnection построении экземпляра через перегрузку, принимающую MetadataWorkspace в качестве параметра, либо при открытии экземпляра EntityConnection .

Введено недопустимое ключевое слово строки подключения или не предоставлено обязательное ключевое слово строки подключения.

Примеры

В следующем примере показано, как использовать EntityConnectionStringBuilder его в сочетании с SqlConnectionStringBuilder. Код задает свойства для SqlConnectionStringBuilder создания SqlConnection строки, которая предоставляет часть строки подключения к базовому поставщику. Обратите внимание, что Provider имя нельзя задать с помощью метода SqlConnectionStringBuilder, так как он не использует допустимый SqlConnection синтаксис. Код создает EntityConnection строку, задав EntityConnectionStringBuilder свойства.


// 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 Строка подключения состоит из последовательности пар параметров ключевого слова и значения, разделенных точкой с запятой. Знак равенства (=) подключает каждое ключевое слово и его значение. В следующей таблице перечислены допустимые имена для значений ключевых слов в строке соединения ConnectionString.

Keyword Описание
Provider Необходимо, если не задано ключевое слово Name. Имя поставщика, которое используется для получения объекта DbProviderFactory, относящегося к базовому поставщику. Это - постоянное значение.

Если ключевое Name слово не включено в строку подключения, требуется непустое значение ключевого Provider слова. Это ключевое слово является взаимоисключающим по отношению к ключевому слову Name.
Provider Connection String Необязательно. Указывает зависящую от поставщика строку соединения, которая передается в базовый источник данных. Эта строка подключения выражается с помощью допустимых пар ключевых слов и значений для поставщика данных. Недопустимая Provider Connection String ошибка во время выполнения при вычислении источником данных.

Это ключевое слово является взаимоисключающим по отношению к ключевому слову Name.

Значение Provider Connection String должно быть окружено кавычками. Ниже приведен пример:

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

Следующий пример не будет работать:

Provider Connection String =Server=serverName; User ID = userID
Metadata Необходимо, если не задано ключевое слово Name. Список каталогов, файлов и расположений ресурсов с разделителями канала, в которых следует искать сведения о модели и сопоставлении. Ниже приведен пример:

Metadata=

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

Пустые пространства, расположенные с обеих сторон вертикальной черты (|), не учитываются.

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

Если в строке соединения не содержится ключевое слово Name, то необходимо задать непустые значения для ключевого слова Provider.

Это ключевое слово является взаимоисключающим по отношению к другим ключевым словам строки соединения.

Приложение может указать ключевое слово или значения непосредственно в свойстве ConnectionString или указать значение ключевого Name слова. Если указано ключевое Name слово, ключевое слово и значения строки подключения извлекаются из файла конфигурации приложения следующим образом:

Name=AdventureWorksEntities;

Если ключевое Name слово используется в свойстве ConnectionString , другие ключевые слова не допускаются. Ключевое Name слово ссылается на именованную строку подключения, которая хранится в connectionStrings разделе в файле конфигурации приложения, как показано в следующем примере. MetadataЗначения Providerи Provider Connection String значения извлекаются из файла конфигурации во время выполнения.

Пары ключевых слов и значений также можно предоставить непосредственно в свойстве ConnectionString , как показано в следующем примере. В этом случае ключевое Name слово не используется.

"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 необходимо заблокировать его метаданные. После блокировки метаданных изменения строки подключения не допускаются. Ниже приведены два сценария, в которых заблокированы метаданные.

  • Экземпляр EntityConnection создается с помощью конструктора без параметров или через EntityConnection(String) конструктор, который принимает строку подключения. В любом случае строка подключения может быть изменена несколько раз до открытия подключения. Вызов Open или GetMetadataWorkspace блокировка метаданных.

  • Экземпляр EntityConnection создается с помощью конструктора EntityConnection(MetadataWorkspace, DbConnection) , который принимает a MetadataWorkspace и a DbConnection. В этом случае метаданные заблокированы во время построения. Никакие изменения в строке подключения никогда не допускаются.

При загрузке метаданных проверяет наличие EntityConnection концептуальной модели, модели хранения и файла сопоставления.

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

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