EntityConnection.ConnectionString Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define o EntityConnection cadeia de ligação.
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
Valor de Propriedade
A cadeia de ligação necessária para estabelecer a ligação inicial a uma fonte de dados. O valor padrão é uma cadeia de caracteres vazia. Numa ligação fechada, o valor atualmente definido é devolvido. Se nenhum valor tiver sido definido, uma cadeia vazia é devolvida.
Exceções
Foi feita uma tentativa de definir a ConnectionString propriedade após a inicialização dos EntityConnection's MetadataWorkspace . O MetadataWorkspace é inicializado quando a EntityConnection instância é construída através da sobrecarga que toma a MetadataWorkspace como parâmetro, ou quando a EntityConnection instância foi aberta.
Foi fornecida uma palavra-chave cadeia de ligação inválida ou não foi fornecida uma palavra-chave cadeia de ligação necessária.
Exemplos
O exemplo seguinte demonstra como usar o EntityConnectionStringBuilder em conjunto com um SqlConnectionStringBuilder. O código define propriedades de um SqlConnectionStringBuilder para criar uma cadeia SqlConnection que fornece parte do cadeia de ligação fornecedor subjacente. Note que o Provider nome não pode ser definido usando o SqlConnectionStringBuilder, porque não utiliza sintaxe válida SqlConnection . O código cria a EntityConnection cadeia definindo EntityConnectionStringBuilder propriedades.
// 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
Observações
Um EntityClient cadeia de ligação consiste numa sequência de pares palavra-chave/valor de parâmetros separados por ponto e vírgula. O sinal de igual (=) liga cada palavra-chave ao seu valor. A tabela a seguir lista os nomes válidos para valores de palavra-chave no ConnectionString.
| Palavra-chave | Descrição |
|---|---|
Provider |
Obrigatório se a Name palavra-chave não for especificada. O nome do provedor, que é usado para recuperar o DbProviderFactory objeto para o provedor subjacente. Este valor é constante.Quando a palavra-chave Name não está incluída no cadeia de ligação, é necessário um valor não vazio para a palavra-chave Provider. Esta palavra-chave é mutuamente exclusiva com a Name palavra-chave. |
Provider Connection String |
Optional. Especifica a cadeia de conexão específica do provedor que é passada para a fonte de dados subjacente. Esta cadeia de ligação é expressa usando pares de palavra-chave/valor válidos para o fornecedor de dados. Um inválido Provider Connection String causará um erro em tempo de execução quando for avaliado pela fonte de dados.Esta palavra-chave é mutuamente exclusiva com a Name palavra-chave.O valor do Provider Connection String deve estar rodeado por citações. Segue-se um exemplo:Provider Connection String ="Server=serverName; User ID = userID";O seguinte exemplo não vai funcionar: Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Obrigatório se a Name palavra-chave não for especificada. Uma lista delimitada por pipes de diretórios, ficheiros e localizações de recursos onde procurar informações de modelos e mapeamento. Segue-se um exemplo:Metadata=c:\model | c:\model\sql\mapping.msl;Os espaços em branco em cada lado do separador de tubo são ignorados. Esta palavra-chave é mutuamente exclusiva com a Name palavra-chave. |
Name |
O aplicativo pode, opcionalmente, especificar o nome da conexão em um arquivo de configuração do aplicativo que fornece os valores de cadeia de conexão de palavra-chave/valor necessários. Nesse caso, não é possível fornecê-los diretamente na cadeia de conexão. A Name palavra-chave não é permitida em um arquivo de configuração.Quando a Name palavra-chave não está incluída na cadeia de conexão, são necessários valores não vazios para a palavra-chave Provider.Esta palavra-chave é mutuamente exclusiva com todas as outras palavras-chave da cadeia de conexão. |
A aplicação pode fornecer a palavra-chave diretamente na ConnectionString propriedade, ou pode especificar um valor para a Name palavra-chave. Se a palavra-chave Name for especificada, a palavra-chave cadeia de ligação ou valores são recuperados de um ficheiro de configuração de aplicação, da seguinte forma:
Name=AdventureWorksEntities;
Se a Name palavra-chave for usada na ConnectionString propriedade, outras palavras-chave não são permitidas. A palavra-chave Name refere-se a um cadeia de ligação nomeado que está armazenado na secção connectionStrings num ficheiro de configuração de aplicação, como mostrado no exemplo seguinte. Os Providervalores , Metadata, e Provider Connection String são recuperados do ficheiro de configuração em tempo de execução.
Os pares palavra-chave/valor também podem ser fornecidos diretamente na ConnectionString propriedade, como mostrado no exemplo seguinte. Neste caso, a Name palavra-chave não é utilizada.
"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' "
Para evitar colocar inadvertidamente objetos como System.Data.Common.CommandTrees e ObjectContext fora de sincronia com os seus metadados, EntityConnection deve bloquear os seus metadados. Não são permitidas alterações à cadeia de ligação após o bloqueio dos metadados. Seguem-se dois cenários em que os metadados estão bloqueados:
A instância EntityConnection é construída através do construtor sem parâmetros, ou através do construtor EntityConnection(String), que aceita um cadeia de ligação. Em qualquer dos casos, a cadeia de ligação pode ser alterada várias vezes antes de a ligação ser aberta. A chamada Open ou GetMetadataWorkspace bloqueia os metadados.
A EntityConnection instância é construída através do EntityConnection(MetadataWorkspace, DbConnection) construtor, que aceita a MetadataWorkspace e um DbConnection. Neste caso, os metadados são bloqueados no momento da construção. Nunca são permitidas alterações à cadeia de ligação.
Quando os metadados são carregados, verifica-se EntityConnection que o modelo conceptual, o modelo de armazenamento e o ficheiro de mapeamento estão todos presentes.