﻿# 在 Entity Framework 設計工具中的自動版面配置技巧

利用 Visual Studio 2010 的 Entity Framework 設計工具從資料庫產生模型後通常會先自動排版，不過每一個產生的模型(Entity)預設寬度都是固定的，導致一些表格名稱太長的項目都顯示不完整 (如下圖示)，而 Entity Framework 設計工具似乎還沒有聰明到可以依照我的意思自動排版，但我今天研究出一個新方法可以幫我解決此問題。  
  
![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/0f8c31152165eaf6125a-image.png)

我的解決方案就是先用 **XML (文字) 編輯器** 開啟此 EDMX 檔案：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/68fced311f88f2fac418-image.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/3849aa62871c5d08af2b-image.png)

該 EDMX 檔案最下面一段有個 EF Designer 專屬的定義區，在 <Diagrams> 下可以看到很多 <EntityTypeShape> 的標籤，其中有個 Width 屬性就是用來定義每個模型的寬度用的，你可以用**全部取代**的方式批次將所有模型的寬度調大到適當的大小，例如改成： **Width="2.2"**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/b356d2e85676ed54af4b-image.png)

改完後關閉此檔並重新開啟，這時你就會看到名稱不會被截掉了，但是模型與模型之間會重疊：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/45846d1779eca5eaf28b-image.png)

我們在 Entity Framework 設計工具中其實是有自動排版功能的，只是不會自動調整模型的寬度而已，最後我們在空白處按右鍵選取 \[**圖表**\] > \[**配置圖表**\] 即可自動排版完成：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/c8680d3dcd1a3ac5ae1a-image.png)

如此一來圖表就好看多了！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d6378f13c713e2cfc807-image.png)
