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 концептуальной модели, модели хранения и файла сопоставления.