Bagaimana cara mengedit string koneksi Entity Framework?

115

Saya baru-baru ini harus mengedit file app.config saya untuk mengubah string koneksi untuk model data Entity Framework ( .edmxfile). Tapi saya ingin tahu: Apakah ada cara untuk mengedit string koneksi EF menggunakan desainer?

String koneksi asli dibuat secara otomatis oleh panduan Model Data Entitas. String koneksi kemudian tidak dapat diubah - tetap dinonaktifkan di jendela properti desainer .edmx. Saya suka menghindari mengedit XML dengan tangan jika saya bisa (di app.config), jadi saya bertanya-tanya apakah ada cara untuk kembali ke layar wizard asli untuk membuat perubahan string koneksi dan membiarkan alat mengedit file app.config untuk saya.

DeveloperDan
sumber

Jawaban:

190

Jika Anda menghapus string koneksi dari app.configfile, menjalankan kembali panduan Model Data entitas akan memandu Anda untuk membuat koneksi baru.

Fabian Nicollier
sumber
17
Luar biasa. Inilah jawaban yang saya cari. Untuk amannya saya mengomentari string yang ada (daripada menghapusnya), menyimpan perubahan app.config, mengklik kanan perancang dan memilih Perbarui Model Dari Database. Wisaya kemudian membiarkan saya menyertakan info sensitif (uid & pwd) dalam string koneksi. Terima kasih!
DeveloperDan
5
Jika Anda melakukan model-first, klik kanan perancang dan klik 'Generate Database from Model' sebagai gantinya
Carl Onager
2
Ini bekerja untuk saya juga, kecuali saya harus memperbarui file App.config, kemudian restart VS.NET 2012. Itu tidak mendeteksi bahwa file App.config berubah.
Garry English
2
Saya harus secara eksplisit memanggil simpan pada file app.config agar desainer mengenali string koneksi telah dihapus.
Rossco
1
Alternatif untuk memulai ulang VS adalah dengan 1. mengomentari string koneksi di app.config 2. membangun kembali proyek yang berisi .edmx 3. klik kanan permukaan desain .edmx dan Perbarui Model Dari Database ... yang seharusnya memunculkan up wizard Connection String.
RIanGillis
18

Tidak, Anda tidak dapat mengedit string koneksi di desainer. String koneksi bukan bagian dari file EDMX itu hanya nilai referensi dari file konfigurasi dan mungkin karena itu hanya baca di jendela properti.

Memodifikasi file konfigurasi adalah tugas umum karena terkadang Anda ingin membuat perubahan tanpa membangun kembali aplikasi. Itulah alasan mengapa file konfigurasi ada.

Ladislav Mrnka
sumber
1 untuk mengingatkan bahwa: jika mereka memasukkannya ke dalam file konfigurasi, itu berarti mereka ingin Anda dapat mengubahnya. Saya terutama khawatir tentang fakta bahwa perubahan saya dapat
ditimpa
Anda harus pergi dan mengubah string koneksi dalam konfigurasi aplikasi dari proyek milik edmx. Bukan konfigurasi aplikasi tingkat atas (yang digunakan saat dijalankan). o_0
akava
9

Anda biasanya menentukan string koneksi Anda di Web.config. Setelah membuat edmx, string koneksi akan disimpan di App.Config. Jika Anda ingin mengubah string koneksi, buka app.config dan hapus semua string koneksi. Sekarang pergi ke edmx, klik kanan pada permukaan desainer, pilih Perbarui model dari database , pilih string koneksi dari dropdown, Klik berikutnya , Tambah atau Segarkan (pilih yang Anda inginkan) dan selesaikan.

Di jendela keluaran akan muncul sesuatu seperti ini,

File model yang dihasilkan: UpostDataModel.edmx. Memuat metadata dari database membutuhkan 00: 00: 00.4258157. Menghasilkan model membutuhkan waktu 00: 00: 01.5623765. Menambahkan string koneksi ke file App.Config.

DanKodi
sumber
Saya mengalami masalah serupa tetapi ketika saya mengomentari string koneksi, memperbarui model, memilih string koneksi baru, kelas context.cs saya dalam model dikosongkan. Tidak yakin mengapa melakukan ini kecuali itu hanya gagal menghasilkan kelas konteks?
bitshift
1
Seharusnya tidak melakukan itu. Mungkin alat template T4 Anda rusak.
DanKodi
Saya setuju, itu "tidak seharusnya". Namun, saya tidak dapat menghitung berapa kali ketika membuat lebih dari beberapa perubahan non-sepele pada skema yang mendasarinya, sehingga saya akhirnya harus membuang model dan membuat yang baru. Mungkin dengan EF7 dan penghapusan file edmx dapat membantu. Either way, itulah yang saya lakukan kali ini juga, hanya menyoroti semua yang ada di model, tekan delete dan membawa item itu kembali.
bitshift
2

Buka file .edmx editor teks apa pun, ubah Schema = " skema yang Anda butuhkan " dan juga buka app.config / web.config , ubah id pengguna dan kata sandi dari string koneksi . kamu selesai.

bijon75
sumber
Ya, ini berhasil.
ggderas
1

Ikuti langkah selanjutnya:

  1. Buka app.config dan komentari string koneksi (simpan file)
  2. Buka edmx (buka properti, string koneksi harus kosong), tutup file edmx lagi
  3. Buka app.config dan hapus komentar pada string koneksi (simpan file)
  4. Buka edmx, buka properti, Anda akan melihat string koneksi di-uptated !!
Cesar Alvarado Diaz
sumber