黄忠成

風雪之閣 - i live,so i writing

用户操作
[即时聊天] [发私信] [加为好友]
黃忠成ID:Code6421
159780次访问,排名478好友0人,关注者26
coding
Code6421的文章
原创 97 篇
翻译 0 篇
转载 0 篇
评论 221 篇
Code6421的公告
關於我:

黃忠成

  • 資深.NET 技術顧問
  • Run! PC 雜誌專欄作者
  • 程序員雜誌文章作者
  • PC Magazine 雜誌專欄作者
  • MSDN 專欄作者
  • MSDN 特約專屬講師
  • Microsoft .NET專屬講師
  • 台灣微軟最有價值專家(MVP 2008)
  • 台灣微軟特約技術顧問


  • 批評,指教,鼓勵, 請 寫信給我
    轉載文章請使用連結模式,
    請勿整篇Copy! 謝謝!


    我所提供的教育訓練:

    Windows Forms
    ASP.NET 2.0
    如有課程需要,請與我聯絡!

  • 我的著作:

  • 最近评论
    chenyong365:我一定会买一本.
    programlin:>>瀏覽器與Office有著同樣的命運,就是最後都會變成一個載體,趨近於OS的地位

    果然是英雄所見略同.
    上次看到一篇文章,大致上的內容是Microsoft正在積極規劃下一代的作業系統,不是Windows,而是一個完全跳脫出Windows概念的新OS.
    我猜想最近這幾年Microsoft推.Net,SOA架構與Windows Live都是……
    programlin:>>瀏覽器與Office有著同樣的命運,就是最後都會變成一個載體,趨近於OS的地位

    果然是英雄所見略同.
    上次看到一篇文章,大致上的內容是Microsoft正在積極規劃下一代的作業系統,不是Windows,而是一個完全跳脫出Windows概念的新OS.
    我猜想最近這幾年Microsoft推.Net,SOA架構與Windows Live都是……
    programlin:>>瀏覽器與Office有著同樣的命運,就是最後都會變成一個載體,趨近於OS的地位

    果然是英雄所見略同.
    上次看到一篇文章,大致上的內容是Microsoft正在積極規劃下一代的作業系統,不是Windows,而是一個完全跳脫出Windows概念的新OS.
    我猜想最近這幾年Microsoft推.Net,SOA架構與Windows Live都是……
    Code6421:to gutes,

    呃..我也不知道怎麼辦....我書的出版權是在金禾,
    不過金禾.....你也知道...Orz
    文章分类
    收藏
      相册
      风雪之阁
      朋友
      LOLOTA
      Moli
      Will 保哥
      匡正
      小朱
      董大偉
      賴榮樞
      存档
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 LINQ To SQL Synchronize Tool Beta收藏

      新一篇: LINQ 與 IEnumerable 介面 | 旧一篇: LINQ To XML : Descendants函式

      LINQ To SQL Synchronize Tool Beta

       

       

      /黃忠成

       

       

        Visual Studio 2008 內附的LINQ To SQL Designer工具相當方便,但其缺點是在Entity Class(實體類別)建立後,若後端的資料表欄位型態有變動,設計師就必須自行由LINQ To SQL Designer調整Entity Class的欄位對應,在應用程式開發流程中,欄位加加減減是常見的事,少了由後端資料庫同步的功能,使得LINQ To SQL Designer在面對此情況時,顯得相當不便。

       

      LINQ To SQL Synchronize Tool

       

        這是我以Visual Studio 2008所開發的一個Windows Form應用程式,她補足了LINQ TO SQL Designer所缺少的"與後端資料庫同步"功能。

        使用上相當簡單,首先請下載LINQ To SQL Synchronize Tool,解壓後可得到一個LTSync.exe,將其放置LTSync目錄下後,開啟Visual Studio 2008,於你的.dbml上按滑鼠右鍵,選擇Open With

      接著點選Add按紐。

      在下面的畫面中,可由...按紐來瀏覽檔案,請選擇LTSync.exe

      按下OK按紐後,來到下面的畫面。

      此時,LTSync已經繫結至Visual Studio 2008中,日後你只要點選Open With按紐,便能於此畫面中選取此程式來開啟.dbml檔案。接著按下OK按紐,Visual Studio 2008便會開啟LTSync

      LTSync會由.dbml中取得Connection String,你可以自行修改她,按下Sync按紐後即會開出以下的畫面。

      Tables部份列出的是.dbml中所有的Entity Class(實體類別,在選取一個Entity Class後,Column Mappings部份會列出所有定義的欄位,此時列出的所有欄位已包含了.dbml中沒有,而實體資料庫有的欄位。

      在選取欄位後,Mapping Details部份會顯示欄位的屬性定義,這些定義與LINQ To SQL Designer所提供的相同,例如AutoSyncIsDbGenerated用來處理Identity欄位,IsPrimaryKey用來標示為主鍵等等,注意!Mapping Details中的定義是LTSync由資料庫中擷取出來的,所以除非有特殊需求,否則你不用特別去調整她們。

      確定無誤,按下Save按紐後,LTSync會將調整後的.dbml寫回原本的檔案,並將調整前的.dbml存成<FileName.dbml..bak.version<index>>,若LTSyncBug而導致.dbml損毀的話,你可以取最新的備份檔來回存。

      在按下Save按紐後,請關閉LTSync程式,此時.designer.cs並未自動更新,你可以透過開啟.dbml(不是以Open With來開,用雙擊該檔案的方式來開),並重新儲存後,.designer.cs便會重新產生。

      另一種方式則是於.dbml上點擊滑鼠右鍵,接著選擇Run Custom Tool來要求Visual Studio 2008.dbml產生.designer.cs

       

      PS:

      1、此為Beta版程式,有可能會毀損.dbml檔案,所以使用前請先備份你的專案。

      2LTSync目前不會移除資料庫中沒有,而.dbml中有的欄位,是否加入此功能,請讀者們投票 ^_^

      3LTSync 可能會加入另一個功能,讓設計師能由.dbml來同步資料表,也就是說,你可以於LINQ To SQL Designer中添加一個欄位,交由LTSync來將該欄位自動添加至後端的資料表。

      4LTSync有兩個小廣告,推銷我的新書,請大家多支持支持囉 ^_^

      5LTSync分成兩個下載,一是單獨的執行檔,二是含原始碼的專案檔,是的!LTSyncGPL授權,你可以任意改動,唯一限制是不要移除我的新書廣告 >_<"

      6LTSync的原始檔中包含許多LINQ/LINQ To XML技巧,是看完【極意之道-.NET Framework 3.5 資料庫開發聖典 ASP.NET 篇】後,很好的應用範例。

       

      LTSync(執行檔only)

      http://www.dreams.idv.tw/~code6421/files/LTSync.zip

      LTSync(原始碼)

      http://www.dreams.idv.tw/~code6421/files/LTSyncSrc.zip

      LTSync(使用視頻)

      http://www.dreams.idv.tw/~code6421/files/LTSyncUse.html

       

       

       

      发表于 @ 2008年04月18日 23:05:00|评论(loading...)|编辑

      新一篇: LINQ 與 IEnumerable 介面 | 旧一篇: LINQ To XML : Descendants函式

      评论

      #Lincats 发表于2008-04-19 06:27:55  IP: 58.252.43.*
      好东西!谢谢啦哈哈!
      #smile_andy 发表于2008-04-21 00:42:28  IP: 210.192.152.*
      極意之道次世代.NET Framework 3.5資料
      4月21日看到網路上已可訂購的相關資訊
      Yahoo!奇摩購物中心
      http://buy.yahoo.com.tw/gdsale/gdbkstore.asp?gdid=885327

      金石堂
      http://www.kingstone.com.tw/book/Book_Page.asp?LID=503&ACTID=sameread&KMCode=2014713041661&Path=%3Ca+href%3D%22http%3A%2F%2Fwww%2Ekingstone%2Ecom%2Etw%22%3E%AD%BA%AD%B6%3C%2Fa%3E%3E+%3Ca+href%3D%22http%3A%2F%2Fwww%2Ekingstone%2Ecom%2Etw%2FBook%2FBOOK%5FINDEX%2EASP%22%3E%A4%A4%A4%E5%C0%5D%AD%BA%AD%B6%3C%2Fa%3E+%3E+%B0%D3%AB%7E%A4%B6%B2%D0%AD%B6+


      pchome
      http://shopping.pchome.com.tw/?mod=item&func=exhibit&IT_NO=DJAA06-A25543544


      博客來
      http://www.books.com.tw/exep/prod/booksfile.php?item=0010399053
      #rex 发表于2008-08-04 10:07:08  IP: 60.249.1.*
      請問,我按下同步後,你說
      在選取一個Entity Class後,Column Mappings部份會列出所有定義的欄位,此時列出的所有欄位已包含了.dbml中沒有,而實體資料庫有的欄位。

      我原本的entity有二個欄位,後來我去資料庫加成了六個
      但在同步視窗始終只有二個欄位,請問是不是那邊我搞錯了呢
      发表评论  


      登录
      Csdn Blog version 3.1a
      Copyright © Code6421