EntityConnection.ConnectionString Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur EntityConnection string koneksi.
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
Nilai Properti
string koneksi diperlukan untuk membuat koneksi awal ke sumber data. Nilai default-nya adalah untaian kosong. Pada koneksi tertutup, nilai yang saat ini ditetapkan dikembalikan. Jika tidak ada nilai yang ditetapkan, string kosong akan dikembalikan.
Pengecualian
Upaya dilakukan untuk mengatur ConnectionString properti setelah EntityConnectionMetadataWorkspace properti diinisialisasi. MetadataWorkspace diinisialisasi baik ketika EntityConnection instans dibangun melalui kelebihan beban yang mengambil MetadataWorkspace sebagai parameter, atau ketika EntityConnection instans telah dibuka.
Kata kunci string koneksi tidak valid telah disediakan atau kata kunci string koneksi yang diperlukan belum disediakan.
Contoh
Contoh berikut menunjukkan cara menggunakan EntityConnectionStringBuilder bersama dengan SqlConnectionStringBuilder. Kode menetapkan properti dari SqlConnectionStringBuilder
untuk membuat SqlConnection string yang memasok bagian dari penyedia yang mendasar string koneksi. Perhatikan bahwa Provider
nama tidak dapat diatur dengan menggunakan SqlConnectionStringBuilder
, karena tidak menggunakan sintaks yang valid SqlConnection
. Kode membuat EntityConnection string dengan mengatur EntityConnectionStringBuilder
properti.
// 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
Keterangan
EntityClient
String koneksi terdiri dari urutan pasangan parameter kata kunci/nilai yang dipisahkan oleh titik koma. Tanda sama dengan (=) menghubungkan setiap kata kunci dan nilainya. Tabel berikut ini mencantumkan nama yang valid untuk nilai kata kunci di ConnectionString.
Kata kunci | Deskripsi |
---|---|
Provider |
Diperlukan jika kata kunci Name tidak ditentukan. Nama penyedia, yang digunakan untuk mengambil objek DbProviderFactory untuk penyedia yang mendasarinya. Nilai ini bersifat konstan.Name Ketika kata kunci tidak disertakan dalam string koneksi, nilai tidak kosong untuk Provider kata kunci diperlukan. Kata kunci ini saling eksklusif dengan kata kunci Name . |
Provider Connection String |
Opsional. Menentukan string koneksi khusus penyedia yang diteruskan ke sumber data yang mendasarinya. String koneksi ini dinyatakan dengan menggunakan pasangan kata kunci/nilai yang valid untuk penyedia data.
Provider Connection String yang tidak valid akan menyebabkan kesalahan run-time saat dievaluasi oleh sumber data.Kata kunci ini saling eksklusif dengan kata kunci Name .Nilai Provider Connection String harus dikelilingi oleh tanda kutip. Berikut ini adalah contohnya:Provider Connection String ="Server=serverName; User ID = userID"; Contoh berikut tidak akan berfungsi: Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Diperlukan jika kata kunci Name tidak ditentukan. Daftar direktori, file, dan lokasi sumber daya yang dibatasi pipa untuk mencari informasi model dan pemetaan. Berikut ini adalah contohnya:Metadata= c:\model | c:\model\sql\mapping.msl; Ruang kosong di setiap sisi pemisah pipa diabaikan. Kata kunci ini saling eksklusif dengan kata kunci Name . |
Name |
Aplikasi ini dapat secara opsional menentukan nama koneksi dalam file konfigurasi aplikasi yang menyediakan nilai string koneksi kata kunci/nilai yang diperlukan. Dalam hal ini, Anda tidak dapat memasoknya langsung di string koneksi. Kata kunci Name tidak diperbolehkan dalam file konfigurasi.Saat kata kunci Name tidak disertakan dalam string koneksi entitas, maka dibutuhkan nilai yang tidak kosong untuk kata kunci Penyedia.Kata kunci ini saling eksklusif dengan semua kata kunci string koneksi lainnya. |
Aplikasi dapat menyediakan kata kunci/nilai langsung di ConnectionString properti , atau dapat menentukan nilai untuk Name
kata kunci.
Name
Jika kata kunci ditentukan, kata kunci/nilai string koneksi diambil dari file konfigurasi aplikasi, sebagai berikut:
Name=AdventureWorksEntities;
Name
Jika kata kunci digunakan dalam ConnectionString properti , kata kunci lain tidak diizinkan. Kata Name
kunci mengacu pada string koneksi bernama yang disimpan di bagian connectionStrings
dalam file konfigurasi aplikasi, seperti yang ditunjukkan dalam contoh berikut. Nilai Provider
, Metadata
, dan Provider Connection String
diambil dari file konfigurasi pada durasi.
Pasangan kata kunci/nilai juga dapat disediakan langsung di ConnectionString properti , seperti yang ditunjukkan dalam contoh berikut. Dalam hal ini, Name
kata kunci tidak digunakan.
"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' "
Untuk menghindari secara tidak sengaja menempatkan objek seperti System.Data.Common.CommandTrees dan ObjectContext tidak sinkron dengan metadatanya, EntityConnection harus mengunci metadatanya. Tidak ada perubahan pada string koneksi yang diizinkan setelah metadata dikunci. Berikut ini adalah dua skenario di mana metadata dikunci:
Instans EntityConnection dibangun melalui konstruktor tanpa parameter, atau melalui EntityConnection(String) konstruktor, yang menerima string koneksi. Dalam kedua kasus, string koneksi dapat diubah beberapa kali sebelum koneksi dibuka. Memanggil Open atau GetMetadataWorkspace mengunci metadata.
Instans EntityConnection dibangun melalui EntityConnection(MetadataWorkspace, DbConnection) konstruktor, yang menerima MetadataWorkspace dan DbConnection. Dalam hal ini metadata dikunci pada waktu konstruksi. Tidak ada perubahan pada string koneksi yang diizinkan.
Ketika metadata dimuat, EntityConnection memverifikasi bahwa model konseptual, model penyimpanan, dan file pemetaan semuanya ada.