﻿# 設計 LINQ to SQL Class 的注意事項 (2)

延續之前寫的[設計 LINQ to SQL Class 的注意事項](/post/2008/03/21/LINQ-to-SQL-Class-Design-Guideline)，最近又有一些小心得可以分享。

1.  **避免從 Server Explorer 拖曳 Table 進 LINQ to SQL Designer 時在 Web.config 中多產生一組新的 ConnectionString  
    **  
    我們常會從 Server Explorer 直接拖曳表格進 LINQ to SQL Designer，尤其是新增表格的時候，第一次用的時候他其實會自動幫我們建立一筆 ConnectionString 到 web.config 中，預設的名稱是 "資料庫名稱ConnectionString"。  
      
    ![從 Server Explorer 拖曳 Table 進 LINQ to SQL Designer ](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/bc5b0d7df14a713d4dcb-image_3.png)   
      
    不過如果你如果日後有將該 ConnectionString 改變了之後，下次再從 Server Explorer 拖曳 Table 進 LINQ to SQL Designer 時，Web.config 就會又多新增一筆 ConnectionString！  
      
    要解決這個問題的方法就是重新設定 Server Explorer 中的連線，且 Server Explorer 中的連線的所有參數設定必須跟你在 Web.config 中的設定完全一模一樣才行，包括 Data Source, Initial Catalog, User ID, Password 或其他相關參數都要一樣才行。  
      
    重新設定的步驟如下：  
      
    ![刪除現有的連線](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/f7e424b2fb2d489b371b-image_6.png)   
      
    ![新增連線](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/19e32832cf1580509f20-image_17.png)   
       
    ![設定連線參數必須跟你在 Web.config 中的設定完全一模一樣才行](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/bb4bcc4463fc7f6da284-image_12.png)  
      
    設定完成之後下次再拖曳表格進 LINQ to SQL Designer 時就不會再莫名其妙的新增連線參數了！  
    
2.  **之前提及的「在設計 LINQ to SQL Class 的時候，有預設資料的欄位要特別設定 Auto Generated Value 為 True，否則會新增失敗」可以改由 DBML 的 Partial Class 解決。**  
      
    我在 [SQL 2000 的 Uniqueidentifier 欄位在 LINQ to SQL 的問題](/post/2008/04/27/SQL-2000-Uniquidentifier-problem-in-LINQ-to-SQL) 有提到這個技巧，就是在 OnCreated() 事件中加入一些原本要設定預設值(Default Value)的欄位，這樣你就不用每次重新拖曳表格時又要全部手動修改一次 Auto Generated Value 為 True 了，算是一勞用逸的方法。
