EntityConnection.ConnectionString Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 Provider
valores , Metadata
e 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:
A EntityConnection instância é construída por meio do construtor sem parâmetros ou por meio do EntityConnection(String) construtor, que aceita um cadeia de conexão. Em ambos os casos, a cadeia de conexão pode ser alterada várias vezes antes da conexão ser aberta. Chamar Open ou GetMetadataWorkspace bloquear os metadados.
A EntityConnection instância é construída por meio do EntityConnection(MetadataWorkspace, DbConnection) construtor , que aceita um MetadataWorkspace e um DbConnection. Nesse caso, os metadados são bloqueados no momento da construção. Nenhuma alteração no cadeia de conexão é permitida.
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.