當試圖導入存儲過程作爲實體框架5中的函數時,出現以下錯誤。我最近更新了數據項目以引用新版EF。執行函數中的類型參數與函數返回的類型不兼容
在ExecuteFunction來的類型參數「SSDS.Data.testy_Result」是 與類型不兼容「SSDS.Data.testy_Result」由 函數返回。
我無法得到它的任何存儲過程的工作......這是我簡單的測試之一:
CREATE PROCEDURE testy
AS
BEGIN
select 'hello' as hello
END
GO
它打破上面這裏的例外:
public virtual ObjectResult<testy_Result> testy()
{
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<testy_Result>("testy");
}
並且在模型設計器的「編輯功能導入」窗口中將結果設置爲字符串標量時沒有錯誤。
我打電話這樣的功能:
private Entities db = new Entities();
var x = db.testy();
有沒有辦法,我在這裏失蹤了一些東西明顯?在我的項目中有幾個edmx文件,其他文件是使用較舊版本的EF創建的(並使用ObjectContext)。
函數映射:
更多函數映射詳細信息:
testy_Result類:
public partial class testy_Result
{
public string hello { get; set; }
}
嘗試將過程中的值轉換爲varchar或nvarchar – 2013-05-08 14:58:48
檢查導入函數的映射是否與選定的返回類型匹配。在模型資源管理器中,右鍵單擊導入的函數並選擇「函數導入映射」。確保左邊的屬性與右邊的字段匹配 – James 2013-05-08 17:47:25
@RuiJarimba在proc中強制轉換does not幫助 – woggles 2013-05-09 14:25:46