ORM元件 ELinq (五) 對映配置之XML

2021-09-06 07:39:58 字數 3765 閱讀 4434

上節介紹了基於fluentapi的對映配置方式,本節我們將親自動手,一步一步搭建elinq的xml對映程式來。備註我使用的開發環境:vs2010,nuget 包管理器,sqlce3.5

開啟sqlce3.5 資料庫,建立客戶表:customer ,過程略

3-1建立和設計持久化類

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

public

string firstname

public

string lastname }}

3-2 編寫xml對映檔案  

4-1 建立dbconfiguration

4-2 建立dbcontext

class

democontext:dbcontext

public idbsetcustomers

}

5.1 清空記錄

在進行測試前,先刪除所有記錄,並檢查表中的記錄一定為0

[test]

public

void

clearall()

}

下面是輸出的sql語句

delete

from

[customer

]where1=

1select

count(*

)from

[customer

]as t0

5-2 新增記錄

新增一條記錄,並檢查客戶id已經自動返回

//

插入var customer = new customer ;

assert.areequal(

0, customer.id);

db.customers.insert(customer);

assert.istrue(customer.id > 0);

sql輸出

insert

into

[customer

]([firstname

], [

lastname])

values (@p0, @p1)--

p0:(dbtype = string,value = 風雲)

--p1:(dbtype = string,value = 王)

select

@@identityas[

id]

5-3 查詢記錄

為了確保上一步已經插入到資料庫中,這一步做乙個查詢檢查,把查詢結果轉換成datatable並輸出資料

//

查詢var items = from c in

db.customers

where c.firstname == "風雲"

select

c;

tb.writexml(console.out);

sql輸出

select t0.[

id], t0.[

firstname

], t0.[

lastname

]from

[customer]as

t0where (t0.[

firstname]=

@p0)

--p0:(dbtype = string,value = 風雲)

9id>

風雲firstname>

王lastname>

customer>

documentelement>

5-4 更新記錄

customer.lastname = "dd"

;var effectedrow =db.customers.update(customer);

assert.areequal(

1, effectedrow);

sql輸出

update

[customer

]set

[firstname]=

@p0, [

lastname]=

@p1where (([id]

=9))--

p0:(dbtype = string,value = 風雲)

--p1:(dbtype = string,value = dd)

5-5 查詢記錄

為了確保上一步已經更新到資料庫中,這一步做乙個查詢檢查,把查詢結果轉換成datatable並輸出資料

//

查詢items = from c in

db.customers

where c.firstname == "風雲"

select

c; tb.writexml(console.out);

sql輸出

select t0.[

id], t0.[

firstname

], t0.[

lastname

]from

[customer]as

t0where (t0.[

firstname]=

@p0)

--p0:(dbtype = string,value = 風雲)

9id>

風雲firstname>

ddlastname>

customer>

documentelement>

5-6 刪除記錄

db.customers.delete(p => p.id ==customer.id);

assert.areequal(

0, db.customers.count());

sql輸出

delete

from

[customer

]where (([id]

=9))select

count(*

)from

[customer

]as t0

在這篇文章中,我們使用elinq來構建了乙個最基本的專案,沒有體現elinq更多細節,只描繪了elinq的xml對映的以及單錶的crud操作。當然使用elinq有各種各樣的程式架構,本系列未做處理,更多實戰知識以後介紹,下一節將介紹基於約定的方式進行對映配置。

技術支援:

官方**

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就是乙個認證元件類的乙個列表,我們在接下來後面的自定義認證元件時,就要注意這裡面的源代源內容,自定義類的類名可以自己起,而類中...