2011-05-12 49 views
38

我使用實體框架(EF)來創建從存儲過程中的複雜類型。近日,存儲過程改變(更多的人加入的返回值。我想更新的複雜類型映射到這個存儲過程。這是可能的,如果是的話,怎麼辦?我正在刪除我的函數導入和複合型每次。存儲過程的變化,這是最有可能不是最好的方法如何獲取實體框架來更新複雜類型?

回答

101

我發現這樣做,但不刪除複雜類型的另一種方式,您可以更新複雜類型和Visual Studio將添加任何改變列方法如下:。

  1. 打開您的.edmx文件並轉到模型瀏覽器
  2. 如果您的存儲過程已更改,請右鍵單擊模型瀏覽中的任何白色區域r並選擇從數據庫更新模型,單擊「完成」。這將刷新您的存儲過程。
  3. 現在深入到XModel.edmx> XModel> EntityContainer:XEntities>功能導入(X是您的實體名稱),然後右鍵單擊需要更新的那個。選擇編輯。
  4. 點擊「獲取列信息」。現在,在複雜類型單選按鈕旁邊,有一個更新按鈕。按此更新您的複雜類型,然後按下OK按鈕。

這應該做到這一點!

+0

我在下面的地方找到'Function Imports':'Foo.edmx/Foo/EntityContainer:FooEntities/Function Imports' – 2013-03-13 18:20:06

+7

非常直觀!我爲什麼沒有想到這個?!?! +1爲您的VS探索性點擊技能,Halcyon。非常感謝。 – 2013-09-12 13:46:55

+2

沒有必要點擊「獲取列信息」,單擊「更新」就會做同樣的事情。 – SlimShaggy 2014-02-24 10:47:56

0

還有就是要做到這一點,在這麼看here一個更簡單的方法。它將一些元信息添加到存儲過程中,EF用它爲您生成適當的返回類型。

存儲過程的元信息部分沒有執行,它只是告訴它返回的是哪些列和數據類型。