上節介紹了基於fluentapi的對映配置方式,本節我們將親自動手,一步一步搭建elinq的xml對映程式來。備註我使用的開發環境:vs2010,nuget 包管理器,sqlce3.5
開啟sqlce3.5 資料庫,建立客戶表:customer ,過程略
3-1建立和設計持久化類
using3-2 編寫xml對映檔案system;
using
system.collections.generic;
using
system.linq;
using
system.text;
namespace
public
string firstname
public
string lastname }}
4-1 建立dbconfiguration
4-2 建立dbcontext
class5.1 清空記錄democontext:dbcontext
public idbsetcustomers
}
在進行測試前,先刪除所有記錄,並檢查表中的記錄一定為0
[test]下面是輸出的sql語句public
void
clearall()
}
delete5-2 新增記錄from
[customer
]where1=
1select
count(*
)from
[customer
]as t0
新增一條記錄,並檢查客戶id已經自動返回
//sql輸出插入var customer = new customer ;
assert.areequal(
0, customer.id);
db.customers.insert(customer);
assert.istrue(customer.id > 0);
insert5-3 查詢記錄into
[customer
]([firstname
], [
lastname])
values (@p0, @p1)--
p0:(dbtype = string,value = 風雲)
--p1:(dbtype = string,value = 王)
select
@@identityas[
id]
為了確保上一步已經插入到資料庫中,這一步做乙個查詢檢查,把查詢結果轉換成datatable並輸出資料
//sql輸出查詢var items = from c in
db.customers
where c.firstname == "風雲"
select
c;
tb.writexml(console.out);
select t0.[5-4 更新記錄id], t0.[
firstname
], t0.[
lastname
]from
[customer]as
t0where (t0.[
firstname]=
@p0)
--p0:(dbtype = string,value = 風雲)
9id>
風雲firstname>
王lastname>
customer>
documentelement>
customer.lastname = "dd"sql輸出;var effectedrow =db.customers.update(customer);
assert.areequal(
1, effectedrow);
update5-5 查詢記錄[customer
]set
[firstname]=
@p0, [
lastname]=
@p1where (([id]
=9))--
p0:(dbtype = string,value = 風雲)
--p1:(dbtype = string,value = dd)
為了確保上一步已經更新到資料庫中,這一步做乙個查詢檢查,把查詢結果轉換成datatable並輸出資料
//sql輸出查詢items = from c in
db.customers
where c.firstname == "風雲"
select
c; tb.writexml(console.out);
select t0.[5-6 刪除記錄id], t0.[
firstname
], t0.[
lastname
]from
[customer]as
t0where (t0.[
firstname]=
@p0)
--p0:(dbtype = string,value = 風雲)
9id>
風雲firstname>
ddlastname>
customer>
documentelement>
db.customers.delete(p => p.id ==customer.id);sql輸出assert.areequal(
0, db.customers.count());
delete在這篇文章中,我們使用elinq來構建了乙個最基本的專案,沒有體現elinq更多細節,只描繪了elinq的xml對映的以及單錶的crud操作。當然使用elinq有各種各樣的程式架構,本系列未做處理,更多實戰知識以後介紹,下一節將介紹基於約定的方式進行對映配置。from
[customer
]where (([id]
=9))select
count(*
)from
[customer
]as t0
技術支援:
官方**
orm元件 elinq系列
orm元件 elinq
更新日誌
orm元件 elinq 使用答疑
加入 elinq使用者的 qq群(271342583)。
手把手教你寫ORM(五)
cmmi是魔鬼 繼續上面的內容,這裡我們要實現乙個外掛程式的結構來動態從外部載入資料元件,其好處不用我再多說了,可能有人會發問,外掛程式是aop的拿手好戲你咋個不用?真是暈死,就2行 犯得著引入那麼大一堆東西進來麼?外掛程式,首先要定義介面,當然通過refrection我們無所不能,但是有乙個定義好...
ORM對映框架總結 資料操作 五
1.資料庫載入驅動和操作介面 idbprovider 2 3 2009 4 224 5 6 資料庫操作載入驅動介面,7 提供了資料庫操作的各種命令 8 9using system 10using system.collections.generic 11using system.linq 12usi...
REST framework 五 認證元件
rest framework 的認證元件是在 apiview dispatch下執行的。跟著原始碼過了下,了解它的實現過程。上圖源 中的self.authenticators就是乙個認證元件類的乙個列表,我們在接下來後面的自定義認證元件時,就要注意這裡面的源代源內容,自定義類的類名可以自己起,而類中...