Aracılığıyla paylaş


ADO.NET Entity Framework'teki Bağlantı Dizeleri

bağlantı dizesi, veri sağlayıcısından veri kaynağına parametre olarak geçirilen başlatma bilgilerini içerir. Söz dizimi veri sağlayıcısına bağlıdır ve bağlantı açma girişimi sırasında bağlantı dizesi ayrıştırılır. Entity Framework tarafından kullanılan bağlantı dizeleri, Entity Framework'ün desteklediği temel ADO.NET veri sağlayıcısına bağlanmak için kullanılan bilgileri içerir. Bunlar ayrıca gerekli model ve eşleme dosyaları hakkında bilgi içerir.

bağlantı dizesi, modele erişirken ve meta verileri eşlerken ve veri kaynağına bağlanırken EntityClient sağlayıcısı tarafından kullanılır. bağlantı dizesine ConnectionString özelliği aracılığıyla erişilebilir veya ayarlanabilir. sınıfı, EntityConnectionStringBuilder bağlantı dizesi program aracılığıyla parametreler oluşturmak veya bu parametrelere erişmek için kullanılabilir.

Varlık Veri Modeli araçları, uygulamanın yapılandırma dosyasında depolanan bir bağlantı dizesi oluşturur. ObjectContext nesne sorguları oluştururken bu bağlantı bilgilerini otomatik olarak alır. EntityConnection örneği tarafından kullanılan ObjectContext, Connection özelliği aracılığıyla erişilebilir.

Bağlantı Dizesi Söz Dizimi

bağlantı dizesi genel söz dizimi hakkında bilgi edinmek için bkz. Bağlantı dizesi söz dizimi | ADO.NET'de Bağlantı Dizeleri.

Bağlantı Dizesi Parametreleri

Aşağıdaki tabloda, ConnectionString içindeki anahtar sözcük değerleri için geçerli adlar listelenmektedir.

Anahtar sözcük Açıklama
Provider Anahtar sözcük belirtilmezse Name gereklidir. Sağlayıcı adının, temel alınan sağlayıcı için DbProviderFactory nesnesini almak amacıyla kullanılması. Bu değer sabittir.

Name anahtar kelimesi bir varlık bağlantı dizesine dahil edilmediğinde, Provider anahtar kelimesi için boş olmayan bir değer gereklidir. Bu anahtar sözcük, Name anahtar sözcüğü ile birbirini dışlar.
Provider Connection String isteğe bağlı. Sağlayıcıya özgü bağlantı dizesi, temel alınan veri kaynağına iletilir ve belirtilir. Bu bağlantı dizesi, veri sağlayıcısı için geçerli anahtar sözcük/değer çiftleri içerir. Veri kaynağı tarafından değerlendirildiğinde geçersiz Provider Connection String bir çalışma zamanı hatasına neden olur.

Bu anahtar sözcük, Name anahtar sözcüğü ile birbirini dışlar.

ADO.NET bağlantı dizesi genel söz dizimine göre değerin kaçtığına emin olun. Örneğin aşağıdaki bağlantı dizesi göz önünde bulundurun: Server=serverName; User ID = userID. Noktalı virgül içerdiğinden kaçınılmalıdır. Çift tırnak işareti içermediğinden, kaçış için kullanılabilir:

Provider Connection String ="Server=serverName; User ID = userID";
Metadata Anahtar sözcük belirtilmezse Name gereklidir. Meta verilerin ve eşleme bilgilerinin arandığı dizinlerin, dosyaların ve kaynak konumlarının kanalla ayrılmış listesi. Aşağıda bir örnek verilmiştir:

Metadata=

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

Boru ayırıcısının her iki tarafındaki boşluklar yoksayılır.

Bu anahtar sözcük, Name anahtar sözcüğü ile birbirini dışlar.
Name Uygulama isteğe bağlı olarak gerekli anahtar sözcüğü/değeri bağlantı dizesi değerleri sağlayan bir uygulama yapılandırma dosyasında bağlantı adını belirtebilir. Bu durumda, bunları doğrudan bağlantı dizesinde sağlayamazsınız. Yapılandırma Name dosyasında anahtar sözcüğüne izin verilmez.

Name anahtar sözcüğü bağlantı dizesine dahil edilmediğinde, Provider anahtar sözcüğü için boş olmayan değerler gereklidir.

Bu anahtar sözcük, diğer tüm bağlantı dizesi anahtar sözcüklerle birbirini dışlar.

Model ve Eşleme Dosyası Konumları

parametresi, Metadata sağlayıcının EntityClient model ve eşleme dosyalarını araması için konumların listesini içerir. Model ve eşleme dosyaları genellikle uygulama yürütülebilir dosyasıyla aynı dizinde dağıtılır. Bu dosyalar ayrıca belirli bir konuma dağıtılabilir veya uygulamaya eklenmiş bir kaynak olarak eklenebilir.

Katıştırılmış kaynaklar aşağıdaki gibi belirtilir:

Metadata=res://<assemblyFullName>/<resourceName>

Ekli kaynağın konumunu tanımlamak için aşağıdaki seçenekler kullanılabilir:

Seçenek Açıklama
assemblyFullName Katıştırılmış kaynağa sahip bir derlemenin tam adı. Ad aşağıdaki gibi basit adı, sürüm adını, desteklenen kültürü ve ortak anahtarı içerir:

ResourceLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Kaynaklar, uygulama tarafından erişilebilen herhangi bir derlemeye eklenebilir.

için assemblyFullNamejoker karakter (*) belirtirseniz, Entity Framework çalışma zamanı aşağıdaki konumlardaki kaynakları şu sırayla arar:

1. Çağıran derleme.
2. Başvurulan derlemeler.
Bir uygulamanın bin klasöründeki derlemeler.

Dosyalar bu konumlardan birinde değilse, bir istisna atılır. Not: Joker karakter (*) kullandığınızda, Entity Framework'ün doğru ada sahip kaynaklar için tüm derlemelere bakmış olması gerekir. Performansı geliştirmek için joker karakter yerine derleme adını belirtin.
resourceName AdventureWorksModel.csdl gibi dahil edilen kaynağın adı. Meta veri hizmetleri yalnızca şu uzantılardan birine sahip dosyaları veya kaynakları arar: .csdl, .ssdl veya .msl. Belirtilmezse resourceName , tüm meta veri kaynakları yüklenir. Kaynakların bir derleme içinde benzersiz adları olmalıdır. Derlemedeki farklı dizinlerde aynı ada sahip birden çok dosya tanımlanmışsa, resourceName klasör yapısını kaynağın adından önce içermelidir, örneğin FolderName.FileName.csdl.

resourceName için joker karakter (*) belirttiğinizde, assemblyFullName gerekli değildir.

Not

Performansı artırmak için, çağrı derlemesinde temel eşleme ve meta veri dosyalarına başvuru bulunmayan Web dışı senaryolar dışında kaynakları çağıran derlemeye ekleyin.

Aşağıdaki örnek, çağrı derlemesindeki tüm model ve eşleme dosyalarını, başvuruda bulunılan derlemeleri ve bir uygulamanın bin dizinindeki diğer derlemeleri yükler.

Metadata=res://*/

Aşağıdaki örnek, AdventureWorks derlemesinden model.csdl dosyasını yükler ve çalışan uygulamanın varsayılan dizininden model.ssdl ve model.msl dosyalarını yükler.

Metadata=res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/model.csdl|model.ssdl|model.msl

Aşağıdaki örnek, belirli bir derlemeden belirtilen üç kaynağı yükler.

Metadata=res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/model.csdl|
res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/model.ssdl|
res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/model.msl

Aşağıdaki örnek, bütünleştirilmiş koddan .csdl, .msl ve .ssdl uzantılarını içeren tüm ekli kaynakları yükler.

Metadata=res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/

Aşağıdaki örnek, göreli dosya yolundaki tüm kaynakları ve yüklenen derleme konumundan "datadir\metadata\" öğesini yükler.

Metadata=datadir\metadata\

Aşağıdaki örnek, yüklenen derleme konumundan göreli dosya yolundaki tüm kaynakları yükler.

Metadata=.\

|DataDirectory| Değiştirme Dizgesi Desteği ve Web Uygulaması Kök Operatörü (~)

DataDirectory ve ~ işleci, ConnectionString ve Metadata anahtar sözcüklerinin bir parçası olarak Provider Connection String içinde kullanılır. EntityConnection DataDirectory ve ~ işlecini sırasıyla MetadataWorkspace ve mağaza sağlayıcısına iletir.

Süre Açıklama
&#124;DataDirectory&#124; Eşleme ve meta veri dosyalarının göreli yoluna çözümler. Bu AppDomain.SetData("DataDirectory", objValue) yöntemi ile ayarlanan değerdir. Değiştirme DataDirectory dizesi, kanal karakterleriyle çevrelenmelidir ve adıyla kanal karakterleri arasında boşluk olamaz. Ad DataDirectory büyük/küçük harfe duyarlı değildir.

"DataDirectory" adlı bir fiziksel dizinin meta veri yolları listesinin bir üyesi olarak geçirilmesi gerekiyorsa, adın iki tarafına veya her iki tarafına boşluk ekleyin. Örneğin: Metadata="DataDirectory1 &#124; DataDirectory &#124; DataDirectory2". Bir ASP.NET uygulaması, |DataDirectory|'yi "<uygulamanın kökü>/app_data" klasörüne bağlar.
~ Web uygulaması köküne çözümler. Öndeki konumdaki ~ karakteri her zaman Web uygulaması kök işleci (~) olarak yorumlanır, ancak geçerli bir yerel alt dizini temsil edebilir. Kullanıcının böyle bir yerel alt dizine başvurmak için ./~ açıkça belirtmesi gerekir.

DataDirectory ve ~ işleci yalnızca yolun başında belirtilmelidir, bunlar başka bir konumda çözümlenmez. Entity Framework, ~/data çözmeye çalışır ancak /data/~'i fiziksel bir yol olarak ele alır.

DataDirectory veya ~ işleciyle başlayan bir yol, DataDirectory dalı ve ~ işleci dışındaki bir fiziksel yola çözümlenemez. Örneğin, aşağıdaki yollar çözümlenir: ~, ~/data, ~/bin/Model/SqlServer. Aşağıdaki yollar çözümlenmeyecek: ~/.., ~/../other.

DataDirectory ve ~ işleci aşağıdaki gibi alt dizinleri içerecek şekilde genişletilebilir: |DataDirectory|\Model, ~/bin/Model

Değiştirme dizesinin DataDirectory ve ~ işlecinin çözümlemesi özyinelemeli değildir. Örneğin, DataDirectory karakteri ~ içerdiğinde bir özel durum oluşur. Bu, sonsuz özyineleme yapılmasını önler.

Ayrıca bkz.