嘗試把資料表加入至ADO.NET實體資料模型時,發生無法加入時該如何排除

本文將介紹在嘗試把資料表加入至ADO.NET實體資料模型時,發生無法加入時該,可能的解決方案。

當您嘗試在實體資料模型精靈中加入資料表物件時,本文以下圖為例,嘗試將t4資料表物件加入至實體資料模型(如下圖左),當按下完成後發現實體資料模型設計工具空空如也,而在輸出視窗中提示模型已產生,但發生警告或錯誤。

imageimage

 

此時開啟錯誤清單可看到如下圖的錯誤訊息。

image

 

   1:  訊息    1    資料表/檢視 'Northwind.dbo.t4' 未定義主索引鍵,也無法推斷有效的主索引鍵。此資料表/檢視已被排除。如果要使用此實體,您必須檢閱您的結構描述,加入正確的索引鍵,並將它取消註解。
   2:  D:\terry\visual studio 2010\Projects\Lab\Lab\NWModel.edmx    0    0    Lab

原因出自於要加入實體資料模型中的資料表,必須要有Primary Key,否則Entity Framework會自行推斷可能的Primary Key,若無法推斷有效的Primary Key則會發生上述的錯誤。若可以推斷但資料表並未設定Primary Key,則資料表將會被設定為唯讀,且所有欄位的實體索引鍵屬性將自動設為True。

image

 

解決方式很簡單,以資料表而言,只要為資料表設定Primary Key,再重新加入至實體資料模型即可。

imageimageimage