一步一步學Linq to sql 九 其它補充

2021-09-06 09:10:42 字數 2047 閱讀 8927

外部對映檔案

我們可以使用sqlmetal命令列工具來生成外部對映檔案,使用方法如下:

1. 開始選單 -》 vs2008 -》vs工具 -》vs2010命令列提示

2、輸入命令:

3.這樣,我們就可以在c盤下得到乙個xml對映檔案和c#的實體類**

4.把.cs檔案新增到專案中來,然後使用下面的**載入對映檔案:

string path = @"

c:\pub.map";

pubs ctx = new pubs("

server=.;database=pubs;uid=sa;pwd=saa

", xms);

5、現在就可以照常進行其它工作了。使用sqlmetal可以很方便的同步資料庫與實體和對映檔案。每次修改資料庫結構,從dbml設計器上刪除表、儲存過程然後再重新新增也是很麻煩的事情。

處理空值

var count = (from c in ctx.authors where c.city == null

select

c).count();

console.writeline(count.tostring());

console.readline();

已編譯查詢

var author = from au in ctx.authors select

au; console.writeline(

"provider型別:

console.writeline(

"資料庫:

console.writeline("表:

(authors)).tablename);

console.writeline(

"表示式:

撤銷提交

var author1 = ctx.authors.single(c => c.au_lname == "

bennet");

author1.city = "深圳"

; author1.address = "廣東"

; console.writeline("省份

" + author1.address + "

城市" +author1.city);

author1 =ctx.authors.getoriginalentitystate(author1);

console.writeline("省份

" + author1.address + "

城市" + author1.city);

批量操作

下面的**會導致提交n次delete操作:

var query1 = from c in ctx.authors select

c; ctx.authors.deleteallonsubmit(query1);

ctx.submitchanges();

應該使用sql語句進行批操作:

string sql = string.format("

delete from

(authors)).tablename);

ctx.executecommand(sql);

對於批量更新操作也是同樣道理。

一步一步學Linq to sql

一步一步學linq to sql 一 預備知識 一步一步學linq to sql 二 datacontext與實體 一步一步學linq to sql 三 增刪改 一步一步學linq to sql 四 查詢句法 一步一步學linq to sql 五 儲存過程 一步一步學linq to sql 六 特性...

一步一步學Linq to sql(九) 其它補充

外部對映檔案 我們可以使用 sqlmetal 命令列工具來生成外部對映檔案,使用方法如下 1 開始選單 vs2008 vs 工具 vs2008 命令列提示 2 輸入命令 d program files microsoft visual studio 9.0 vc sqlmetal conn serv...

一步一步學Linq to sql(九) 其它補充

外部對映檔案 我們可以使用 sqlmetal 命令列工具來生成外部對映檔案,使用方法如下 1 開始選單 vs2008 vs 工具 vs2008 命令列提示 2 輸入命令 d program files microsoft visual studio 9.0 vc sqlmetal conn serv...