簡體   English   中英

使用復雜數據類型在EF中調用存儲過程

[英]Calling stored procedure in EF with Complex Data Type

我是一名ASP.NET/MVC 3.0 VS2010項目中的Entity Framework新手。 我已經導入了兩個存儲過程作為函數導入,並在這樣做時為每個創建了一個復雜的數據類型。

我正在嘗試運行以下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;
}

我收到了錯誤:

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

我究竟做錯了什么? 如何在復雜數據類型中正確存儲存儲過程的結果?

您可以使用DbSet.SqlQuery方法從存儲過程中獲取結果。

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

假設你有一個這樣的集合定義了你的DbContext類。

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

更多信息可在此處獲得

嘗試並改變這個:

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

對此:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM