五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > Castle的Nullables和。net空值處理

Castle的Nullables和。net空值處理

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):424    更新時(shí)間:2009-09-20 08:58   參與評(píng)論
晚上在一個(gè)開(kāi)源群里,一個(gè)朋友提出了個(gè)關(guān)于使用castle時(shí)候空值處理的問(wèn)題

要在字段里插入空值

castle有提供一組空值類(lèi)型,可以如下實(shí)現(xiàn):
[Property]

public NullableDateTime CreatedDate

{

    
get return _createdDate; }

    
set { _createdDate = value; }

}


 

[Property]

public NullableInt32 Count

{

    
get return _count; }

    
set { _count = value; }

}

ActiveRecord提供的空屬類(lèi)型與實(shí)際類(lèi)型對(duì)照表

CLR Basic Type

Nullable Type

System.Boolean

Nullables.NullableBoolean

System.Byte

Nullables.NullableByte

System.Char

Nullables.NullableChar

System.DateTime

Nullables.NullableDateTime

System.Decimal

Nullables.NullableDecimal

System.Double

Nullables.NullableDouble

System.Guid

Nullables.NullableGuid

System.Int16

Nullables.NullableInt16

System.Int32

Nullables.NullableInt32

System.Int64

Nullables.NullableInt64

System.SByte

Nullables.NullableSByte

System.Single

Nullables.NullableSingle

注意在使用空屬類(lèi)型時(shí)需要添加以下引用

Nullables.dll

Nullables.NHibernate.dll

【上面引用了TerryLee老師的一些博客資料】



但是在使用的時(shí)候出現(xiàn)一些轉(zhuǎn)換上的問(wèn)題,看起來(lái)不兼容的樣子,具體代碼情況那位朋友沒(méi)有說(shuō)清楚,
只是需要在一個(gè)字段插入Null值

于是我提出說(shuō)可以直接設(shè)置NotNull=false 就可以忽略初始化時(shí)候賦值,
但是這樣做的結(jié)果是 int字段的值自動(dòng)填為0,也就是說(shuō)這樣設(shè)置依然有在持久化的時(shí)候使用該屬性,并設(shè)置了默認(rèn)的值

那么Nullable類(lèi)型的屬性看來(lái)是很有必要的了,

回頭想想,.net很強(qiáng)大,對(duì)這種情況會(huì)沒(méi)有考慮到嗎?
不知你是否注意到int? i;這樣的聲明。

嗯,這就是解決問(wèn)題的方法~

private int? _count;
[Property]
public int? Count
{
get { return _count; }
set { _count = value; }
}


問(wèn)題就這樣解決~

。net2.0開(kāi)始,支持空值,這樣就不會(huì)再自動(dòng)默認(rèn)為0了~呵呵 不知道在看書(shū)的時(shí)候是否忘記還有這么個(gè)好用的特性呢~^^
作者:wsky (huangxu)
出處:http://wsky.cnblogs.com/
以上文字若無(wú)注明轉(zhuǎn)載字樣則為個(gè)人原創(chuàng),轉(zhuǎn)載請(qǐng)保留簽名
Tag標(biāo)簽: c#,Castle,ORM,空值,Nullables

如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (424人查看0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱(chēng):
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢(xún)

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)