EntityConnection.ConnectionString Propriedade

Definição

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:

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.

Aplica-se a

Ver também