2013-01-06 22 views
7

Şu anda SqlEntityConnection türü sağlayıcıyı kullanarak C# 'dan F #' ya kadar oldukça basit bir uygulamayı yeniden yazmaya çalışıyorum ve bir EF konusuna giriyorum: " CLR türünün EDM türüne eşlenmesi belirsizdir, "her biri aynı ada sahip bir tabloya sahip olan iki SqlEntityConnections öğesinin açılmasıyla ortaya çıkabilir. Ancak bu durumda, EF, tip sağlayıcısı aracılığıyla bir sistem tablosunu açıkça haritalandırmasıdır. gerçek hata dtproperties tabloya başvuran -SqlEntityConnection kullanarak, CLR türünün EDM türüne eşlemesi belirsizdir

{ "Belirtilen şema geçerli değil Hataları: \ r \ birden CLR türleri EDM tipi 'dtproperties' eşleşecek çünkü EDM tipine CLR Çeşidi haritalama belirsiz nArka.. Daha önce CLR türü 'SqlEntityConnection2.dtproperties', yeni bulunan bulundu CLR türü 'SqlEntityConnection1.dtproperties'. "}

Nasıl bu tablo haritası çıkarılan değişir ki? Teşekkürler.

(Bu ayrıca EF kullandığı orijinal C# sürümü, bir sorun değildir.)

+0

Tür sağlayıcısının hangi türlerde oluşturduğu tabloları filtrelemenin bir yolunu bilmiyorum. Projenizde iki SqlEntityConnection türetilmiş türüne sahip olmanız gerekiyorsa, önce bunları farklı ad alanlarına yerleştirmeyi deneyeceğim. Bu yardımcı olmazsa, o zaman her zaman "dtproperties" tabloları silebilirsiniz sanırım ... –

+0

@JoelMueller Teşekkürler, farklı adlar şey denedim, ama bir fark yaratıyor gibi görünmüyor. Ve maalesef, DBA'ları kızdırmadan dtpropertie'leri silemem. :( – rachel

+1

"dtproperties" görmek için iznine sahip olmayan bir kullanıcının kimlik bilgileriyle veritabanına bağlanabilir misiniz? –

cevap

2

Eğer POCO kullanarak ve aynı tip isimde iki tür vardır çünkü öyle. EF ad alanlarını göz ardı eder ve bu nedenle aynı ada sahip iki tür ancak farklı ad alanları EF için belirsizdir. (http://entityframework.codeplex.com/workitem/483)

+0

SqlEntityConnection kesinlikle veritabanıdır. POCO'nun ilgisi yok. –

+0

Doğru, sorunun farkındayım. Ancak bu durumda, EF (tip sağlayıcı aracılığıyla) bir sistem tablosu eşleştiriyor ve bu da hataya neden oluyor. Bu tabloyu nasıl eşlerim? – rachel

+0

@JoelMueller - Bu doğru değil. VS2010'daki varsayılan kod jeneratörü EntityObject'i üretecektir, ancak VS2012'de POCO üretecektir. Ayrıca VS2010 için bile Veritabanı İlk POCO türleri üretecek POCO T4 şablonları kullanabilirsiniz. – Pawel

İlgili konular