視覺工作室給我一個錯誤的蹤跡,我已經死了。我正在嘗試將數據庫中的現有表添加到我的數據模型中。我知道桌子應該有一把鑰匙,但是它沒有,我無法修復;這不是我的數據庫重新設計。實體數據模型 - 添加一個無鑰匙表
當我第一次嘗試添加表,我得到這個錯誤:
The table/view 'BT8_GC.dbo.SAVED_QUERY_CATEGORY' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity, you will need to review your schema, add the correct keys, and uncomment it.
好,好,我會爲它定義並取消鍵。這裏是我取消後,手動定義鍵塊(我也不得不添加可空=假部分):
<EntityType Name="SAVED_QUERY_CATEGORY">
<Key>
<PropertyRef Name="SQC_CAT_ID"/>
<PropertyRef Name="SQC_USER_ID"/>
</Key>
<Property Name="SQC_CAT_ID" Type="int" Nullable="false" />
<Property Name="SQC_USER_ID" Type="int" Nullable="false" />
<Property Name="SQC_CAT_DSCR" Type="varchar" MaxLength="50" />
<Property Name="SQC_SEQ_NO" Type="int" />
</EntityType>
不,現在的設計師將不會打開。回到文件中,並且Intellisense顯示此錯誤:
Error 11002: Entity Type 'SAVED_QUERY_CATEGORY' has no entity set.
好的...取消註釋創建了一個新錯誤。添加實體集後:
<EntitySet Name="SAVED_QUERY_CATEGORY" EntityType="IssueModel.Store.SAVED_QUERY_CATEGORY" store:Type="Tables" Schema="dbo" />
Yay!設計師打開!仍然還沒有,因爲當它出現在商店的Tables/Views文件夾下時,它在模型中沒有實體類型。無法從我的代碼中調用它。儘管我沒有任何錯誤,但我嘗試創建實體集映射,但這會導致錯誤「在MetadataWorkspace中不存在」。
所以這就是我所嘗試過的。如何將這個設計不佳的表格放入我的數據模型中?
對於後代,您必須將子元素「EntitySet」添加到「Schema」元素中的「EntityContainer」中。在我的情況下,'EntityContainer'是以摺疊形式自動生成的,所以我不得不揣摩出來。 –