2011-08-15 154 views
2

我有一個現有的EF4.1項目工作得很好。我添加了一個新的SP到DB,它返回一個新類型的實體(一個具有一些額外字段的現有實體)。實體框架和存儲過程與自定義實體

問題是,當我嘗試將功能導入EF - 它不會創建我的複雜類型。該向導寫道「沒有爲該模型配置數據庫連接」。這很奇怪 - 因爲它確實看到了新的SP和所有東西。

我試圖創造我自己的,新的複雜類型,而是根據需要(有些類型轉換問題)

任何想法什麼可以做也不會映射字段?

謝謝!

+0

你確定你的SP總是返回相同的結果集? – a1ex07

+0

當然!這是一個普通的SELECT查詢 – Roman

回答

4

建立在馬拉科的答案上,我有一個類似的情況。我的問題是,我的連接字符串是在一個外部文件

<connectionStrings configSource="some_other_file.config"> 

「更新模式」嚮導有一個bug,它不會在連接字符串的外部文件看,我不能留在一個連接字符串connectionStrings標記,因爲它必須是空的,否則它會在構建時發生錯誤。

對我來說,解決方法是使用更新嚮導,選中「在W​​eb.config中保存實體連接字符串」框,然後添加所有我的函數導入。當我完成後,我將connectionString註釋掉,這樣我的項目就會生成。下一次,在更新模型之前取消註釋該實體連接字符串。

惱人的,但至少有一種方法可以讓它工作。

+0

是的,這就是我如何做,但下次發生什麼,你添加一個新的存儲過程,然後你必須再次添加連接字符串,否則當你嘗試獲取列時,它將不會映射喲獲取在「編輯功能導入」消息中,您將看到一條消息,指出「沒有爲此型號配置數據庫連接」。所以我的工作是重新安裝estore程序,但是當我有20或更多的時候會發生什麼,那麼每次我將不得不重新執行所有存儲過程或創建新模型? @Rocketmonkeys – Xvegas

+0

這裏是我的解決方案的鏈接有一個視頻和everyting,但我試圖找出如何做到這一點與刪除模型或添加連接字符串[視頻鏈接](http://youtu.be/GHKYCgXqqMY) – Xvegas

+0

@Xvegas - 如果您要在此發佈解決方案,無論是作爲評論還是其他答案,這都會很棒。由於某種原因,與外部來源的鏈接通常會變得很糟糕,並且沒有人會知道您的解決方案。謝謝! – rocketmonkeys

0

我假設實體模型的ConnectionString屬性爲空。檢查模型瀏覽器。

解決此問題的最簡單方法是刪除.config文件中的所有連接字符串。做

connectionstring=" 

搜索刪除線(S)完全或

評論它/它們刪除你的EDMX並重新創建它。確保選中「保存Web.config中的實體連接設置爲:」。

現在應該設置ConnectionString,並且您將能夠通過函數導入生成複雜的模型。

0

如果它仍然不適合你,然後刪除其他連接字符串。並重新添加新的。 同樣的問題由此解決。刪除所有連接字符串,並首先添加實體框架的連接字符串,然後添加其他字符串,但更改了名稱。

0

對我來說,我是如何在我的模型項目中工作的。還有其他連接字符串留在那裏,那裏有「server =」(與非EDMX相關)。我剛剛刪除了那些其他連接字符串,並且EDMX更新嚮導按照廣告方式工作。

看到的錯誤消息:由於以下異常無法更新App.Config文件:'The'server'關鍵字不受支持。「

0

我解決了這個同樣的問題(VS2013)是這樣的:

  1. 轉到模型瀏覽器
  2. 右鍵從數據庫
  3. 點擊YourModel.edmx
  4. 更新模型
  5. 然後,它促使我選擇連接。我選擇了我想要的連接,然後進入下一個屏幕。
  6. 添加/刷新/刪除你需要什麼。
  7. 選擇完成,瞧,連接在這裏。
0

您必須再次添加連接字符串的每次添加一個存儲過程。否則這將是沒有地圖,當你試圖讓你獲得「編輯功能的進口」的消息欄,你會看到一個消息,說「沒有數據庫連接已經配置了這種模式。」

所以我的解決辦法是重新重新安裝存儲過程,但會發生什麼,當我有20個或更多,然後每一次我將不得不重新做所有的存儲過程。或者創建一個新的模型,這是這個的缺點。

這裏是我的解決方案的鏈接有一個視頻和一切,但我想圖解如何做到這一點與刪除模型或添加連接字符串VIDEO LINKstack overflow solution,因爲還沒有地圖存儲過程我使用我公司必須檢索的類從存儲過程中獲取表,然後將數據作爲JSON字符串發送,如果您希望該解決方案讓我知道,然後我將托盤與解釋一起執行代碼(使用a完成。 dsn連接字符串和ODBC「開放式數據庫連接」)。