對於.NET的開發者來說,相信以LINQ撈取資料的方式一定不陌生。
然而我有時總是得嘗試很多次才寫出想要的結果(唉,怪自己LINQ底子太差了),
所以想找一套工具能幫我SQL TO LINQ,藉此快速學習。
於是找到這套Linqer。
一、執行Linqer.exe後,得預先設定初始值。
二、點選Add,加入一個Connection,填入自訂的Connection Name及資料庫的Connection String後:
三、以 SqlMetal.exe 產生.dbml檔。
SqlMetal是命令列工具,所以要在Command底下打指令,如果是單機上連接資料庫,用以下指令就行了。
/server: <name> |
指定資料庫伺服器名稱。 |
/database: <name> |
指定伺服器上的資料庫目錄。 |
/user: <name> |
指定登入使用者識別碼。 預設值:使用 Windows 驗證。 |
/password:<password> |
指定登入密碼。 預設值:使用 Windows 驗證。 |
但如果是連接遠端資料庫,就得用
/conn: <connection string> |
指定資料庫連接字串。 無法搭配 /server, /database、/user 或 /password 選項使用。 不要在連接字串 (Connection String) 中包含檔案名稱。 而是在命令列中加入檔名來做為輸入檔案。 例如,下行指定了 "c:\northwnd.mdf" 做為輸入檔案:sqlmetal /code:"c:\northwind.cs" /language:csharp "c:\northwnd.mdf"。 |
我以/conn連接為例,因為msdn上沒講字串要用雙引號包著,字串內要用單引號包著,我試了好久才成功 >< 。例如:
D:\>sqlmetal /conn:"server='myservername';user='myid';password='mypassword' " /dbml:out.dbml
其它參數請自行查閱MSDN。
四、點選Generate LINQ to SQL Files按鈕,產生.designer.cs檔案。也可以把dbml匯入visual studio專案內的App_Code後,它也會自動產生.designer.cs檔案。設定好後按OK就能開始玩linqer了。
畫面左邊是SQL工作區,右邊是LINQ顯示區,在左邊點選Convert SQL To LINQ後,會將LINQ語法顯示在右邊;如果要執行SQL查詢語句,則點選Run SQL,查詢後節果會顯示在下方區塊,相當簡單。
測試畫面 :
感覺還蠻好用的,但在翻譯複雜的SQL語句時會有些語法上的小錯誤,但還能接受啦,手動修掉就好了。如果能有智能提示功能就更讚了 ^^