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。
<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 248.25pt; HEIGHT: 327.75pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.png"></imagedata></shape>
接著點選Add按紐。
<shape id="_x0000_i1026" style="WIDTH: 414.75pt; HEIGHT: 237pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image003.png"></imagedata></shape>
在下面的畫面中,可由...按紐來瀏覽檔案,請選擇LTSync.exe。
<shape id="_x0000_i1027" style="WIDTH: 415.5pt; HEIGHT: 233.25pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image005.png"></imagedata></shape>
按下OK按紐後,來到下面的畫面。
<shape id="_x0000_i1028" style="WIDTH: 414.75pt; HEIGHT: 232.5pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image007.png"></imagedata></shape>
此時,LTSync已經繫結至Visual Studio 2008中,日後你只要點選Open With按紐,便能於此畫面中選取此程式來開啟.dbml檔案。接著按下OK按紐,Visual Studio 2008便會開啟LTSync。
<shape id="_x0000_i1029" style="WIDTH: 417pt; HEIGHT: 171.75pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image009.png"></imagedata></shape>LTSync會由.dbml中取得Connection String,你可以自行修改她,按下Sync按紐後即會開出以下的畫面。
<shape id="_x0000_i1030" style="WIDTH: 414.75pt; HEIGHT: 411pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image011.png"></imagedata></shape>
Tables部份列出的是.dbml中所有的Entity Class(實體類別,在選取一個Entity Class後,Column Mappings部份會列出所有定義的欄位,此時列出的所有欄位已包含了.dbml中沒有,而實體資料庫有的欄位。
在選取欄位後,Mapping Details部份會顯示欄位的屬性定義,這些定義與LINQ To SQL Designer所提供的相同,例如AutoSync、IsDbGenerated用來處理Identity欄位,IsPrimaryKey用來標示為主鍵等等,注意!Mapping Details中的定義是LTSync由資料庫中擷取出來的,所以除非有特殊需求,否則你不用特別去調整她們。
確定無誤,按下Save按紐後,LTSync會將調整後的.dbml寫回原本的檔案,並將調整前的.dbml存成<FileName.dbml..bak.version<index>>,若LTSync有Bug而導致.dbml損毀的話,你可以取最新的備份檔來回存。
在按下Save按紐後,請關閉LTSync程式,此時.designer.cs並未自動更新,你可以透過開啟.dbml(不是以Open With來開,用雙擊該檔案的方式來開),並重新儲存後,.designer.cs便會重新產生。
<shape id="_x0000_i1031" style="WIDTH: 249pt; HEIGHT: 129.75pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image013.png"></imagedata></shape>
另一種方式則是於.dbml上點擊滑鼠右鍵,接著選擇Run Custom Tool來要求Visual Studio 2008由.dbml產生.designer.cs。
<shape id="_x0000_i1032" style="WIDTH: 193.5pt; HEIGHT: 123pt" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CDOCUME~1%5CADMINI~1%5CLOCALS~1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image015.png"></imagedata></shape>
PS:
1、此為Beta版程式,有可能會毀損.dbml檔案,所以使用前請先備份你的專案。
2、LTSync目前不會移除資料庫中沒有,而.dbml中有的欄位,是否加入此功能,請讀者們投票 ^_^
3、LTSync 可能會加入另一個功能,讓設計師能由.dbml來同步資料表,也就是說,你可以於LINQ To SQL Designer中添加一個欄位,交由LTSync來將該欄位自動添加至後端的資料表。
4、LTSync有兩個小廣告,推銷我的新書,請大家多支持支持囉 ^_^
5、LTSync分成兩個下載,一是單獨的執行檔,二是含原始碼的專案檔,是的!LTSync是GPL授權,你可以任意改動,唯一限制是不要移除我的新書廣告 >_<"。
6、LTSync的原始檔中包含許多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
分享到:
相关推荐
LINQ to SQL语句(1)之Where LINQ to SQL语句(2)之Select/Distinct LINQ to SQL语句(3)之Count/Sum/Min/Max/Avg LINQ to SQL语句(4)之Join LINQ to SQL语句(5)之Order By LINQ to SQL语句(6)之Group By/Having LINQ ...
LINQ TO SQL[1] 是包含在.NET Framework 3.5 版中的一种 O/RM 组件(对象关系映射),O/RM 允许你使用 .NET 的类来对关系数据库进行建模。然后,你可以使用LINQ对数据库中的数据进行查询、更新、添加、删除。 LINQ TO ...
LINQ To SQL实现分页效果源码 VS2008 Frameworks3.5 LINQ To SQL 实现分页效果 数据库SQL 2005
一个简单的linq to sql c#例子 实现数据库操作基本功能
实现linq多个查询条件连接功能(支持linq to sql 和linq to entity)。 按多个指定属性排序功能。 不同参数的lamdba表达式条件间的转换功能。
linq基础 linq to sql linq基础 linq to sql
ASP.NET MVC+LINQ TO SQL登陆
自己学linq to sql时做的demo
浅谈Linq to sql 的多表关联与动态条件查询 Linq to sql 是一种强大的数据查询语言,它可以帮助开发者快速、高效地访问和操作数据库数据。在本文中,我们将讨论 Linq to sql 的多表关联和动态条件查询这两个重要的...
LINQ to SQL可视化调试工具,下载文件包括一个可视化调试工具的.dll程序集(在bin\debug文件夹下),而且还包含了源代码!算是小小的补偿吧:)
一步一步学 Linq to sql 一步一步学 Linq to sql.doc 一步一步学 Linq to sql.doc
linq to sql实现分层与gridview使用实现增删改,适合新手做三层项目开发,快速入门
LINQ to SQL 学习资料 保存的网页
LINQ to SQL和Entity Framework对比与关联LINQ to SQL和Entity Framework对比与关联
详细介绍linq to sql的使用方法和注意要点
Linq to Sql 教程大全
留言薄,使用LINQ TO SQL 开发,供大家了解LINQ TO SQL
LINQ to SQL语句(1)之Where 2 Where操作 2 1.简单形式: 2 2.关系条件形式: 2 3.First()形式: 3 LINQ to SQL语句(2)之Select/Distinct 3 1.简单用法: 4 2.匿名类型 形式: 4 3.条件形式: 5 4.指定类 型形式: 6 ...
完整的linq to sql 学习笔记。
微软的Linq to SQL只支持Sql Server,这里是用DbLinq 生成MySql的Linq to SQL实例。做了个bat文件,一键搞定。具体运用有详细说明和调用文件。