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ı dizesi erişilebilir veya özelliği EntityConnectionaracılığıyla ConnectionString 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 Bir ObjectContext örnek tarafından kullanılan özelliğinden Connection 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, içindeki anahtar sözcük değerleri için geçerli adlar listelemektedir ConnectionString.
Anahtar sözcük | Açıklama |
---|---|
Provider |
Anahtar sözcük belirtilmezse Name gereklidir. Temel alınan sağlayıcının nesnesini almak DbProviderFactory için kullanılan sağlayıcı adı. Bu değer sabittir.Name Anahtar sözcük bir varlık bağlantı dizesi dahil edilmediğinde, anahtar sözcük için Provider boş olmayan bir değer gerekir. Bu anahtar sözcük, anahtar sözcükle birbirini dışlar Name . |
Provider Connection String |
isteğe bağlı. Temel alınan veri kaynağına geçirilen sağlayıcıya özgü bağlantı dizesi belirtir. Bu bağlantı dizesi, veri sağlayıcısı için geçerli anahtar sözcük/değer çiftleri içerir. Geçersiz Provider Connection String bir durum, veri kaynağı tarafından değerlendirildiğinde çalışma zamanı hatasına neden olur.Bu anahtar sözcük, anahtar sözcükle birbirini dışlar Name .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çılması gerekir. Ç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; Kanal ayırıcısının her tarafındaki boş boşluklar yoksayılır. Bu anahtar sözcük, anahtar sözcükle birbirini dışlar Name . |
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ı dizesi sağlayamazsınız. Yapılandırma Name dosyasında anahtar sözcüğüne izin verilmez.Name Anahtar sözcük bağlantı dizesi dahil edilmediğinde Provider anahtar sözcüğü için boş olmayan değerler gerekir.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 assemblyFullName joker karakter (*) belirtirseniz, Entity Framework çalışma zamanı aşağıdaki konumlardaki kaynakları şu sırayla arar:1. Çağıran derleme. 2. Başvuruda bulunan derlemeler. 3. Bir uygulamanın bin dizinindeki derlemeler. Dosyalar bu konumlardan birinde değilse, bir özel durum oluşturulur. 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 assemblyFullName joker karakter (*) belirttiğinizde 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=.\
| desteğiDataDirectory| Değiştirme Dizesi ve Web Uygulaması Kök İşleci (~)
DataDirectory
ve ~ işleci ve Provider Connection String
anahtar sözcüklerinin Metadata
bir parçası olarak kullanılırConnectionString. , EntityConnection sırasıyla ve ~ işlecini MetadataWorkspace ve mağaza sağlayıcısını iletirDataDirectory
.
Süre | Açıklama |
---|---|
|DataDirectory| |
Eşleme ve meta veri dosyalarının göreli yoluna çözümler. Bu, yöntemi aracılığıyla AppDomain.SetData("DataDirectory", objValue) 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 | DataDirectory | DataDirectory2" . bir ASP.NET uygulaması çözümlenmesi |DataDirectory| "<uygulama kökü>/app_data" klasörüne. |
~ | 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. Böyle bir yerel alt dizine başvurmak için kullanıcının açıkça geçirmesi ./~ gerekir. |
DataDirectory
ve ~ işleci yalnızca yolun başında belirtilmelidir, bunlar başka bir konumda çözümlenmez. Entity Framework, çözümünü ~/data
dener, ancak fiziksel bir yol olarak ele /data/~
alır.
veya ~ işleciyle DataDirectory
başlayan bir yol, ve ~ işlecinin DataDirectory
dalı dışındaki fiziksel bir 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.