2013-08-03 26 views
36

Kayıtlı yordamlar ve EDMX ile ilgili sonsuz sorunlar yaşadım. Bir prosedür oluşturdum, modeli veritabanından güncelledim ve hepsi işe yaradı. Daha sonra bir sütunu kaldırdım ve saklı yordamda yeni bir tane ekledim. Modeli güncelledim, ancak EDMX proc tanımını yenilemedi.Saklanan Yordamlar ve güncelleştirme EDMX

Proc'u bıraktım ve bir güncelleştirme yaptım, ancak el ile proc. Veriyi yeniden adlandırıp veritabanından model güncellemesiyle almayı bitirdim.

Sadece aynı sorunu yaşadım. Yeni bir sütun eklendi ve mevcut bir sütunu yeniden adlandırıldı. Veritabanından güncelleme modeli ile EDMX'i yeniledim, ancak EDMX'te hiçbir değişiklik olmadı ve açık bir şekilde çalışma zamanında başarısız oldu. Depolanmış prosedür güncellemesi Entity Framework ile nasıl yapılmalıdır? enter image description here

Ben, proc kaldırıldı modeli rejenere, yordam için 'cs' dosyalarını silinmiş derlenmiş, daha sonra modelini rejenere ve patlama, tekrar veritabanına prosedürü eklendi! Aynı modeli 3 kez ekler, sadece sonuncusu doğru olur. Neden eski sürümleri geri getirmeye devam ediyor?

cevap

7

Bulabildiğim tek hata, EDMX'i kapatmak ve veritabanını saklanan prodı kaldırdıktan sonra ve veritabanından modeli güncelledikten sonra XML'yi manuel olarak düzenlemekti - hala proc. Satırları XML'den kaldırmak sorunu çözdü.

89

(Bu çözüm diğer EF sürümlerinde denemedim EF 6. içindir. Güzel çalışır.)


git tarayıcısını Model. MyStoreProc, saklı yordamın adıdır (örnek olarak). MyStoreProc 3 yerde görünecek. Altında

  1. 1 yer-Kompleks Türleri-> Fonksiyon İthalat Altında MyStoreProc_result
  2. 2 Place- olarak - Saklanan Procdures/Fonksiyonlar Altında - -> olarak MyStoreProc
  3. 3.lük> olarak MyStoreProc

Modelden üçünü de sil. edmx'i (pencereye tıklayarak ctrl + S'ye kaydedin) kaydedin. Ardından sağ tıklayın ve modeli veritabanından güncelleyin. Ardından güncellenmiş saklı yordamı ekleyin ve tekrar kaydedin.

o ince, çalışma değilse ve aynı durum atma ise o zaman aşağıda verilen adımları yapın "veritabanından Güncelleme Modeli" aracılığıyla SP yenilemek do herhangi bir güçlük :) Her şeyden

+0

Hayat kurtarıcınız: D ... Teşekkürler! – Muhammedh

+1

Teşekkürler Muhammedh – SArifin

+0

Bu çok yardımcı oldu, teşekkürler! Ben biraz edimsiz olduğunu itiraf etmeliyim çünkü edmx şemasında bunu arıyordum ve Depolanmış Prosedürler orada gösterilmiyor - sadece Tablolar ve Görünümler. –

1

Birinci olmadan çözüldü . 1.Double .edmx dosyasına tıklayın. 2. Model Tarayıcıda, Karmaşık Türler, İşlev İthalatları ve Saklı Prosedürler/İşlevlerden SP'yi Silme. 3. Tümünü Kaydet. 4. SP'nizi "Veritabanından Güncelleştirme Modeli" ile tekrar ekleyin. 5. Tümünü Kaydet.

İlgili konular