Entity Framework bağlantı dizesini nasıl düzenlemeliyim?


115

Yakın zamanda bir Entity Framework veri modeli ( .edmxdosya) için bağlantı dizesini değiştirmek için app.config dosyamı düzenlemem gerekiyordu . Ancak şunu bilmek istiyorum: Tasarımcıyı kullanarak EF bağlantı dizesini düzenlemenin bir yolu var mı?

Orijinal bağlantı dizesi, Varlık Veri Modeli sihirbazı tarafından otomatik olarak oluşturulur. Bağlantı dizesi daha sonra değiştirilemez - .edmx tasarımcısının özellikler penceresinde devre dışı bırakılır. Yapabilirsem (app.config içinde) XML'yi elle düzenlemekten kaçınmayı seviyorum, bu nedenle bağlantı dizesi değişiklikleri yapmak ve aracın app.config dosyasını düzenlemesine izin vermek için orijinal sihirbaz ekranına geri dönmenin bir yolu olup olmadığını merak ediyordum. benim için.

Yanıtlar:


191

Bağlantı dizesini app.configdosyadan kaldırırsanız, varlık Veri Modeli sihirbazını yeniden çalıştırmak yeni bir bağlantı oluşturmanız için size rehberlik edecektir.


17
Mükemmel. Bu tam olarak aradığım cevap. Güvende olmak için var olan dizeyi yorumladım (silmek yerine), app.config değişikliklerini kaydettim, tasarımcıyı sağ tıkladım ve Modeli Veritabanından Güncelle'yi seçtim. Sihirbaz daha sonra hassas bilgileri (uid & pwd) bağlantı dizesine eklememe izin verdi. Teşekkürler!
DeveloperDan

5
Modeli önce yapıyorsanız, tasarımcıya sağ tıklayın ve bunun yerine 'Modelden Veritabanı Oluştur'u tıklayın
Carl Onager

2
Bu benim için de işe yaradı, ancak App.config dosyasını güncellemem, ardından VS.NET 2012'yi yeniden başlatmam gerekti. App.config dosyasının değiştiğini algılamıyordu.
Garry English

2
Tasarımcının bağlantı dizesinin silinmiş olduğunu tanıması için app.config dosyasında açıkça kaydetme çağrısı yapmam gerekiyordu.
Rossco

1
VS'yi yeniden başlatmanın bir alternatifi, 1. app.config içindeki bağlantı dizesini yorumlamaktır 2. .edmx'i içeren projeyi yeniden oluşturmak 3. .edmx tasarım yüzeyine sağ tıklayın ve Veri Tabanından Modeli Güncelle ... Bağlantı Dizesi sihirbazını açın.
RIanGillis

18

Hayır, tasarımcıdaki bağlantı dizesini düzenleyemezsiniz. Bağlantı dizesi EDMX dosyasının bir parçası değildir, sadece yapılandırma dosyasından değere referans verilir ve muhtemelen bu nedenle özellikler penceresinde salt okunurdur.

Yapılandırma dosyasını değiştirmek yaygın bir görevdir çünkü bazen uygulamayı yeniden oluşturmadan değişiklik yapmak isteyebilirsiniz. Yapılandırma dosyalarının var olmasının nedeni budur.


+1 şunu hatırlatmak için: Bir yapılandırma dosyasına koyarlarsa, değiştirebilmenizi istedikleri anlamına gelir. Esas olarak değişikliklerimin geçersiz
kılınabileceği

Edmx'in ait olduğu projenin uygulama yapılandırmasına gidip bağlantı dizesini değiştirmelisiniz. Üst düzey uygulamanın yapılandırması değil (çalıştırıldığında kullanılır). o_0
akava

9

Normalde bağlantı dizelerinizi Web.config dosyasında tanımlarsınız. Edmx'i oluşturduktan sonra bağlantı dizesi App.Config'de saklanacaktır. Bağlantı dizesini değiştirmek istiyorsanız, app.config dosyasına gidin ve tüm bağlantı dizelerini kaldırın. Şimdi sağa, tasarımcı yüzeyinde tıklayın seçin EDMX gidin Güncelleme modeli veritabanından açılır menüden bağlantı dizesini seçin Click sonraki ekleme veya Yenile (istediğini seçin) ve bitiş.

Çıktı penceresinde şöyle bir şey gösterecek,

Oluşturulan model dosyası: UpostDataModel.edmx. Veritabanından meta verilerin yüklenmesi 00: 00: 00.4258157 aldı. Modelin oluşturulması 00: 00: 01.5623765 aldı. Bağlantı dizesi App.Config dosyasına eklendi.


Benzer bir sorun yaşıyorum ama bağlantı dizesini yorumladığımda, modeli güncellediğimde, yeni bir bağlantı dizesi seçtiğimde, modeldeki context.cs sınıfım boşalıyor. Bağlam sınıfını oluşturmada başarısız olmadığı sürece neden bunu yaptığından emin değil misiniz?
bitshift

1
Bunu yapmamalı. T4 şablon oluşturma aracınız bozuk olabilir.
DanKodi

Katılıyorum, "olmamalı". Bununla birlikte, temel şemada birkaç önemsiz olmayan değişiklikten fazlasını yaparken, sonunda modeli uçurup yeni bir tane oluşturmak zorunda kaldığım sayıyı kaybettim. Belki EF7 ve edmx dosyasını kaldırması işlere yardımcı olabilir. Her iki durumda da, bu sefer de yaptığım şey buydu, modeldeki her şeyi vurguladım, sil
düğmesine basıp

2

.Edmx dosyasını açın, herhangi bir metin düzenleyicisi Schema = " gerekli şemanız " ı değiştirin ve ayrıca app.config / web.config dosyasını açın , bağlantı dizesinden kullanıcı kimliğini ve parolayı değiştirin . bitirdiniz.


Evet, bu yaptı.
ggderas

1

Sonraki adımları izleyin:

  1. App.config dosyasını açın ve bağlantı dizesine yorum yapın (dosyayı kaydedin)
  2. Edmx'i açın (özelliklere gidin, bağlantı dizesi boş olmalıdır), edmx dosyasını tekrar kapatın
  3. App.config dosyasını açın ve bağlantı dizesini kaldırın (dosyayı kaydedin)
  4. Edmx'i açın, özelliklere gidin, bağlantı dizisinin yükseltildiğini görmelisiniz !!
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.