如何在ADO.NET Entity Data Model建立後加入新mapping

最近在撰寫Web Service,其中單純運算處理之WebMethod不多,主要是連接後端DB將資料透過Web Service回傳,因此需要使用O/R Mapping技術將後端資料預處理,方可為後續Web Service採用。

以VS為開發工具而論,有兩種mapping方式—LINQ to SQL Classes以及ADO .NET Entity Data Model ,前者透過拖曳方式將SQL Server table置放於*.dbml設計介面,後者則以VS提供之精靈設定,使用上極為方便~皆為所視即所得(WYSIWYG)!
但開發階段存在許多不確定因素,今日需要對5個table操作,明日可能因客戶需求變更為7個table,此時便需更新mapping方可進一步使用新增的2個table。LINQ to SQL Classes更新方式一如其建立方式,直接從Server Explorer拖曳想新增的SQL Server table即可,但ADO .NET Entity Data Model 不提供拖曳的方式,必須想辦法將精靈叫出方可更新table。
請注意mouse圖案!LINQ to SQL Classes讓您存檔後,
依舊可從Server Explorer拖曳其他table更新mapping 

 請注意mouse圖案!經精靈設定完成的ADO .NET Entity Data Model,
無法由Server Explorer拖曳其他table更新mapping

 
瞭解上述情境後,以下說明使用ADO .NET Entity Data Model更新mapping時的小技巧。
SETP 1:於*.edmx空白處按右鍵,並選擇「Update Model from Database...」


SETP 2:透過Update Wizard完成table mapping的更新(以新增table  mapping為例)
Update Wizard初始畫面

選取要新增(Add)mapping的表格並按下Finish 

 更新成功!現在有2個table的mapping...

本文主要是提供ADO.NET Entity Data Model使用者一點小撇步,piggy開發時也是苦於mapping更新花了點時間研究,希望這個tip能幫到其他也在學習中的朋友。最後附上開發環境資訊。

[環境說明]
開發工具:VS2010
資料庫:SQL Server Express 2005
.NET Framework版本:4.0

1 則留言:

匿名 提到...

請問大大~
您使用 ado.net entity + webservice~
請問您 webmethod 當有大量資料需要回到前端時~是使用何種資料型態~
dataset嗎~那 edm 可以直接轉成 dataset 嗎~但是直接回傳 objectquery 給前端(可以回傳?)?
謝謝~