SQL Server 2000, 2005 ve 2008 kullanan bir Web uygulamasında varlık çerçevesini kullanıyorum. Başka bir şeyi kullanarak yeni bir EDMX dosyası oluştururken 2008 (yaratılan ilk edmx sürümü) error 0172: All SSDL artifacts must target the same provider. The Provider 'MyDatabase' is different from ' MyDatabase ' that was encountered earlier.
alırsınız Kodun bir yerinde bağlantı bir 2008 veri deposuna bağlanır ve SSDL dosyasını kontrol edip farklı bir ProviderManifestToken değeri görürse bu hatayı atar. Ben hayal kırıklığından biraz daha fazlasıyım. EF'nin uygulama başına sadece Sql Server'ın tek bir sürümü ile çalışacağını düşünmek zor. Bir ayar veya geçici çözüm olması gerektiğinden eminim. Herkesin tek bir web uygulamasında farklı SQL Server sürümlerini ve Entity Framework'ü kullanması için bir çözümü var mı?Tek bir ASP.NET uygulamasında varlık çerçevesini kullanarak SQL Server'ın birden çok sürümü
cevap
Bunu, her bir edmx
'u ayrı bir kuruluma yerleştirerek başarabiliyorum.
var oneDb = new Entities2000();
var otherDb = new Entities2005();
var results = from one in oneDb.SomeSet
join other in otherDb.OtherSet
on one.Property equals other.Property
select new {
SomeProp = one.SomeProp,
OtherProp = other.OtherProp
};
Bunun nerede işe yaradığını görüyorum. Baktığım konu, neden çevremde çalışmıyordu. O zamandaki tek çalışma, tüm ProviderManifestToken'i aynı sürüme ayarlamaktı. Bu zamandan beri tüm dbs'leri MSSQL 2008'e taşıdım. Bu yüzden neden bu orijinal soruma cevap vermiyor olabilir, bu kabul edilebilir bir çözümdür. –
Aynı sorunu yaşadım. Daha sonra '@Cogwheel - Matthew Orlando' önerisinde anlatılanları uyguladı ve 2005 ve 2008'in her iki sql sunucusu için de mükemmel çalışıyor. Not: SQL 2008'e diff adına sahip veri erişimi için yeni bir proje hazırladım ve daha sonra tüm içeriği önce kopyaladım. ve ilgili sql sürümü için 'ProviderManifestToken' ve daha sonra ikinci projede ad alanlarını değiştirdi - yeni derleme adına göre (gerekli olup olmadığını bilmiyorum). Ve şimdi mutluyum. – mastak
İlk önce kodu kullanırken nasıl bir düşünce var? –
Bu bağlantı bana yardımcı: Sonra bağlantı dizesinde, tüm Hatta (iddialarının aksine ben diğer kaynaklarda bulundu) iki varlık modelleri arasında katılır gerçekleştirebilirsiniz res://*/...
res://NameOfAssembly/...
ile, örneğin değiştirmek SQL Server 2005 ve 2008'de bir sorun olduğunda sorunu çözmek için. http://kkryczka.wordpress.com/2011/01/03/all-ssdl-artifacts-must-target-the-same-provider-the-providermanifesttoken-2008-is-different-from-2005-that-was-encountered-earlier/
.edmx dosyasına sağ tıklayın ve XML Editor ile Aç'ı seçin. Açık Varlık Framework .edmx dosyası:
Değişim 2008 ProviderManifestToken:
Microsoft için onun bilinen bir sorun gibi görünüyor.
Teşekkürler adamım. Bununla gerçekten uğraştım. Başka bir geliştirici projemize farklı bir sağlayıcı ile eklemeye devam etti. İyi makale –
Benim durumumda bulduğum şey, tek bir çözümde 3 projemiz vardı ve A projesinden birinde ProviderManifestToken'i değiştirdik ve bu, B projesini bile aynı çözümden çalıştırmama izin vermedi. – franklins
Benim durumumda, 2008 tot 2012'yi ve bulduğunuz dosyanın en altını değiştirmem gerekiyordu:
- 1. ASP.NET Başka bir projeden varlık çerçevesini alma
- 2. varlık çerçevesindeki tek bir varlık sınıfına birden çok tablo eşleme
- 3. Varlık Çerçevesini Kullanarak Verileri Yenileme
- 4. Birden çok/tek Linq için SQL DataContext
- 5. Tek bir pdf dosyasında birden çok qr kodu raporlab ve django çerçevesini kullanarak oluşturun
- 6. Tek bir PGexec çağrısında birden çok postgres SQL deyimini geçirin
- 7. Tek bir sorguda birden çok DataContexts kullanarak SQL için Linq SQL
- 8. Birden çok python sürümü çalıştırma
- 9. Tek bir SQL CASE deyiminde birden çok sütun nasıl alınır?
- 10. LINQ-SQL Tek bir işlemde birden çok Satır Güncelleştirme
- 11. Aynı tablonun birden çok sorgusunu tek bir SQL deyimine birleştirmek
- 12. Tek bir sql sorgusunda koşullu birden çok sütunu nasıl güncelleyeceğiniz
- 13. Tek Bir Dosyaya Birden Çok .sql Tablo Dökümü Dosyalarını Birleştirin
- 14. ASP.NET MVC Core uygulamasında proje sürümü (RC2)
- 15. SQL birleştirmesine kullanarak birden çok değer alın
- 16. Küresel ortamda birden çok veri çerçevesini tek bir dosyada bir araya getirme
- 17. Entity Framework, Önbellek kullanarak hala tek bir sorguda birden çok varlıkları tek bir sorguya yükleyin
- 18. Varlık çerçevesini çözümümüze nereye yerleştirelim?
- 19. Asp.net (C#) uygulamasında birden çok sunucuda Uygulama önbelleğini destekliyor mu?
- 20. Deneyimler ASP.NET MVC Çerçevesini Kullanma
- 21. Varlık Çerçevesini değiştirmeden veritabanını durdurma
- 22. Birden çok kez maven kullanarak tek bir test gerçekleştirin
- 23. Birden çok DB sorgusu varlık varlık yüklendiğinde birden çok DB sorgusu 6
- 24. Varlık Çerçevesi ile birden çok ilişki birden çok
- 25. Varlık Çerçevesini Sıfırla 7 geçişler
- 26. Varlık Çerçevesini Anlamak 4.1 Kurallar
- 27. SQL Tek Bir Sütunda Farklı Kullanarak Birden Çok Sütun Sorguyu Sorgulama
- 28. SQL - Birden çok değer içeren bir sütunda birleşim kullanarak, hücrelerde
- 29. Tek bakışta birden çok yineleme -
- 30. ASP.NET MVC 3 Tek-çok Formu
SQL 2000'den sql'e 2008 geçişi için bir geçişin ortasında olduğumu ve bağlantı dizelerini değiştirdiğimi ve tüm SSDL'yi değiştirdiğimde bir "Veritabanından Güncelleştirme Modeli" gerçekleştirme olasılığım var. Uygulama çalışır ProviderManifestToken = "2005" kullanın. –
Ben de bu soruna bir cevap arıyorum. Şimdiye kadar bulduğum tek alakalı google sonuçları, herhangi bir derinliğe girmiyor. – Cogwheel