Bu basit bir cevabı olabilir ama ben EF CTP5 ile saklı yordamı yürütmek nasıl göremez.Varlık Çerçevesi CTP5 - Saklı Yordam Çağrısı Nasıl Yapılır?
ExecuteFunction("ContainerName.StoredProcName", new ObjectParameter("Id", id))
:
ObjectContext
bir yöntemdir
.
Ama DbContext
böyle bir yöntem vardır.
Nasıl bir saklı yordam denir? EF CTP5'te desteklenmiyor mu?
DÜZENLEME:
var people = context.People.SqlQuery("EXECUTE [dbo].[GetAllPeople]");
Bu, bazı kaygı uyandırmaktadır:
Bunu yapmak gerekir hangi durumları this thread bulundu
1) Artık prodedure saklanan aradığınız seti değil bağlam. Saklı yordamlar, belirli bir varlık kümesine bağlı olmayan, bağlam çapında kullanılabilir olmalıdır. Tıpkı "Tablo" altında değil, SQL Server'da "Veritabanı" altında oldukları gibi.
2) karmaşık türleri ne olacak? Daha önce saklı bir prosedürden döndürülmüş karmaşık bir tür vardı. Ama şimdi, doğrudan bir varlığa eşlemek zorundasınız gibi görünüyor? Bu hiç mantıklı değil. Bir ObjectSet/DBSet tarafından doğrudan temsil edilmeyen bir tür döndüren çok sayıda saklı prok var.
Birisi bunu benim için temizleyebilir, çünkü şu ana kadar anladığım kadarıyla CTP5'e yükseltme yapamayacağım.
gibi veritabanı çapında sql ifadeleri yürütebilirsiniz. – RPM1984
Bu, ilk kaygınızı yanıtlıyor. Sp'ler, içerik çapında kullanılabilir. DbContext.Database, yerleşik DbDatabase nesnesine bir başvurudır. Bu, DbSet üzerinde çalışan context.People.SqlQuery'den farklıdır. –
Ahh sağın, bunu bir ver ve sana geri dönecek. – RPM1984