2011-12-15 26 views
0

我想選擇使用LINQ到實體視圖中的行後,沒有得到這個錯誤,所以我右點擊EDMX設計師和「生成數據庫模型」,然後選擇視圖從嚮導。該視圖出現。我可以選擇行。如何加入以EF模型

然而,從「生成模型數據庫」這一點現在導致這個(良性我的看法,但惱人的)錯誤:

Msg 2714, Level 16, State 6, Line 3 
There is already an object named 'vAdvertiserEmployees' in the database. 
Msg 4909, Level 16, State 1, Line 3 
Cannot alter 'dbo.vAdvertiserEmployees' because it is not a table. 

什麼我錯在這裏做什麼?

+0

這並不是說,你正在做的事情錯了這一點,如果我不與多元化誤的交易改變實體名稱vAdvertiserEmployee和它的關係或子對象名稱來vAdvertiserEmployees這是否有道理..? – MethodMan

回答

1

從數據庫更新模型從模型生成的數據庫是兩種獨有的方法。內置的VS EF設計師無法從一個到另一個不會有太大的痛苦 - 一旦開始使用數據庫結構(如視圖),從數據庫生成模型的方式就消失了。 EDMX文件中的視圖表示爲從視圖中選擇的SQL查詢(名爲DefiningQuery的內部元素)。如果您運行從模型生成數據庫從EDMX文件中刪除整個數據庫描述(SSDL部分),並替換爲不允許自定義SQL查詢的新模型(模型不知道任何關於數據庫結構(如視圖))。這意味着所有映射的視圖都將成爲EF的表格,下一步將創建用於創建/更改表格的腳本(只能使用數據庫生成動力包等附加工具進行更改)。

選擇一種方法,並按照它的整個開發或使用(購買)的一些擴展的設計師,這將使你這些方法之間的交換。作爲允許您有選擇地更新模型和數據庫的工具示例,請檢查Huagati EDMX tools

+0

謝謝,我有一半已經以「它更好,如果我讓EF生成我的DDL」的形式得出這個結論 - 我沒有意識到它是有效的使用任何一種/或方法,所以這有助於。 –