5

Jestem nowy w pracy z Entity Framework w projekcie próbki ASP.NET/MVC 3.0 VS2010. Zaimportowałem dwie przechowywane procedury jako import funkcji i, w ten sposób, utworzyłem złożony typ danych dla każdego.Wywołanie procedury składowanej w EF z rozszerzonym typem danych

Próbuję uruchomić następujący kod C#:

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; 
} 

A ja dostaję błąd:

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

Co robię źle? Jak poprawnie przechowywać wyniki przechowywanego procesu w złożonym typie danych?

+0

pokaż mapowanie i metodę StoredProc. – Pawel

Odpowiedz

1

spróbować to zmienić:

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

do tego:

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

Ten sam błąd tutaj; nie pozwoli mi używać jako złożonego typu danych. Wciąż wyświetla ten sam błąd co powyżej. Jakieś inne pomysły? –

2

Można użyć DbSet.SqlQuery sposób, aby uzyskać wyniki procedury przechowywanej.

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

Zakładając, że masz taką kolekcję, zdefiniowano twoją klasę DbContext.

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

Więcej informacji dostępnych here.

+0

Projekt nie rozpoznaje kontekstu.Database.SqlQuery, ale daje mi opcję kontekstu.ExecuteStoreQuery; podążając za powyższą składnią za pomocą tego samego polecenia, daje mi ten sam błąd - nie można go niejawnie przekonwertować. Jakieś inne pomysły? –

+0

której wersji struktury encji używasz? czy Twój zapisany proces zwraca coś z powrotem? – Shyju

+0

Korzystanie z EF 4.0; Zapisane proc zwraca około 10 kolumn i zwykle od 5 do 15 wierszy –

Powiązane problemy