Partilhar via


EntityConnection.ConnectionString Propriedade

Definição

Obtém ou define a cadeia de conexão 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

Valor da propriedade

A cadeia de conexão necessária para estabelecer a conexão inicial com uma fonte de dados. O valor padrão é uma cadeia de caracteres vazia. Em uma conexão fechada, o valor definido no momento é retornado. Se nenhum valor tiver sido definido, uma cadeia de caracteres vazia será retornada.

Exceções

Fo feita uma tentativa de definir a propriedade ConnectionString após a inicialização de MetadataWorkspace do EntityConnection. O MetadataWorkspace é inicializado quando a instância EntityConnection é construída por meio da sobrecarga que utiliza um MetadataWorkspace como parâmetro, ou quando a instância EntityConnection foi aberta.

Uma palavra-chave de cadeia de conexão inválida foi fornecida ou uma palavra-chave de cadeia de conexão obrigatória não foi fornecida.

Exemplos

O exemplo a seguir demonstra como usar o EntityConnectionStringBuilder em conjunto com um SqlConnectionStringBuilder. O código define as propriedades de um SqlConnectionStringBuilder para criar uma cadeia SqlConnection de caracteres que fornece parte do provedor subjacente cadeia de conexão. Observe que o Provider nome não pode ser definido usando o SqlConnectionStringBuilder, porque ele não usa sintaxe válida SqlConnection . O código cria a EntityConnection cadeia de caracteres 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

Comentários

Um EntityClient cadeia de conexão consiste em uma sequência de pares de parâmetros de palavra-chave/valor separados por ponto-e-vírgula. O sinal de igual (=) conecta cada palavra-chave e seu valor. A tabela a seguir lista os nomes válidos para valores de palavra-chave na propriedade ConnectionString.

Palavra-chave Descrição
Provider Necessária quando a palavra-chave Name não é especificada. O nome do provedor, que é usado para recuperar o objeto DbProviderFactory do provedor subjacente. Esse valor é constante.

Quando o Name palavra-chave não está incluído no cadeia de conexão, um valor não vazio para o Provider palavra-chave é necessário. Essa palavra-chave é mutuamente excludente com a palavra-chave Name.
Provider Connection String Opcional. Especifica a cadeia de conexão específica ao provedor que é passada para a fonte de dados subjacente. Essa cadeia de conexão é expressa usando pares de palavra-chave-valor válidos para o provedor de dados. Uma palavra-chave Provider Connection String inválida produzirá um erro em tempo de execução ao ser avaliada pela fonte de dados.

Essa palavra-chave é mutuamente excludente com a palavra-chave Name.

O valor da palavra-chave Provider Connection String deve ficar entre aspas. A seguir, é mostrado um exemplo:

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

O exemplo a seguir não funcionará:

Provider Connection String =Server=serverName; User ID = userID
Metadata Necessária quando a palavra-chave Name não é especificada. Uma lista delimitada por pipe de diretórios, arquivos e locais de recursos nos quais procurar informações de modelo e mapeamento. A seguir, é mostrado um exemplo:

Metadata=

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

Os espaços em branco em cada lado do separador de pipe são ignorados.

Essa palavra-chave é mutuamente excludente com a palavra-chave Name.
Name O aplicativo pode, opcionalmente, especificar o nome da conexão em um arquivo de configuração do aplicativo que forneça 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 palavra-chave Name não é permitida em um arquivo de configuração.

Quando a palavra-chave Name não é incluída na cadeia de conexão, um valor não vazio para a palavra-chave Provider é necessário.

Essa palavra-chave é mutuamente excludente com todos as outras palavras-chave de cadeia de conexão.

O aplicativo pode fornecer os palavra-chave/valores diretamente na ConnectionString propriedade ou pode especificar um valor para o Name palavra-chave. Se o Name palavra-chave for especificado, os cadeia de conexão palavra-chave/valores serão recuperados de um arquivo de configuração de aplicativo, da seguinte maneira:

Name=AdventureWorksEntities;

Se o Name palavra-chave for usado na ConnectionString propriedade , outras palavras-chave não serão permitidas. O Name palavra-chave refere-se a um cadeia de conexão nomeado armazenado na connectionStrings seção em um arquivo de configuração de aplicativo, conforme mostrado no exemplo a seguir. Os Providervalores , Metadatae Provider Connection String são recuperados do arquivo de configuração em tempo de execução.

Os pares palavra-chave/valor também podem ser fornecidos diretamente na ConnectionString propriedade , conforme mostrado no exemplo a seguir. Nesse caso, o Name palavra-chave não é usado.

"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 seus metadados, EntityConnection deve bloquear seus metadados. Nenhuma alteração no cadeia de conexão é permitida depois que os metadados são bloqueados. Veja a seguir dois cenários em que os metadados estão bloqueados:

Quando os metadados são carregados, o EntityConnection verifica se o modelo conceitual, o modelo de armazenamento e o arquivo de mapeamento estão todos presentes.

Aplica-se a

Confira também