5

ASP.NET/MVC 3.0 VS2010 numaralı bir projede Entity Framework ile çalışmaktan çok memnunum. İki saklı yordamı İşlev İthalatı olarak aldım ve bunu yaparken her biri için karmaşık bir veri türü oluşturdum.Karmaşık Veri Türü ile EF'de saklı yordamı çağırma

Aşağıdaki C# kodu çalıştırmak çalışıyorum:

public ComplexDataType RunStoredProc() 
{ 
    var context = new DbEntities(); 
    int param1 = 370; 
    int param2 = -1; 
    string param3 = "Current"; 

    ComplexDataType result = new ComplexDataType; 
    result = context.StoredProc(param1, param2, param3); 
    return result; 
} 

Ve hatayı alıyorum:

Cannot implicitly convert data type 
    System.Data.Objects.ObjectResult(ComplexDataType) to 'ComplexDataType' 

yanlış yapıyorum? Kayıtlı proc'un sonuçlarını karmaşık bir veri türünde düzgün bir şekilde nasıl depolarım?

+0

eşleme ve StoredProc yönteminizi gösterir. – Pawel

cevap

1

deneyin ve bunu değiştirmek: Buna

result = context.StoredProc(param1, param2, param3); 

:

result = (ComplexDataType) context.StoredProc(param1, param2, param3); 
+0

Aynı hata burada; Karmaşık veri türü olarak yayınlamama izin vermez. Hala yukarıdakiyle aynı hatayı görüntüler. Başka fikirlerin var mı? –

2

Bir saklı yordam sonuçları almak için DbSet.SqlQuery yöntemi kullanabilirsiniz. Size varsayarsak

int param1=12; 
int param2=53; 
var results=context.ComplexDataTypes.SqlQuery. 
         ("dbo.YourSPNameHere @p0 @p1", param1,param2).Single(); 

Böyle bir koleksiyon DBContext sınıfı tanımlanmış bulunmaktadır.

public DbSet<ComplexDataType> ComplexDataTypes { set;get;} 

Daha fazla bilgi kullanılabilir here.

+0

Proje context.Database.SqlQuery'yi tanımıyor, ancak bana context.ExecuteStoreQuery için bir seçenek sunuyor; Yukarıdaki sözdizimini aynı komutla takip ederek, bana aynı hatayı veriyor - dolaylı olarak dönüştüremiyor. Başka fikirlerin var mı? –

+0

Kullandığınız varlık çerçevesinin hangi sürümü var? depolanmış proc geri dönecek bir şey mi? – Shyju

+0

EF 4.0 Kullanımı; saklanan proc yaklaşık 10 sütun döndürür ve genellikle 5 ile 15 satır arasında –

İlgili konular