最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy

 更新時間:2022年05月31日 14:05:47   作者:springsnow  
這篇文章介紹了C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

插入或更新null空值

一、在SQL語句中直接插入null或空字符串“”

int? item = null;
item == null ? 
"null"
 : item.ToString();
item == null ? "" : item.ToString();

二、用命令參數(shù),插入DBNull.Value

int? item = null;
cmd.Parameters.Add(dbPams.MakeInParam(":Item", SqlNull(item)));
cmd.Parameters[0].IsNullable = true;//更新時需加入此句。

static public object SqlNull(object obj)
{
    return (item == null ? DBNull.Value : item)
}

延遲加載

.在.NET4.0中,可以使用Lazy 來實現(xiàn)對象的延遲初始化,從而優(yōu)化系統(tǒng)的性能。

正如我們所知,對象的加載是需要消耗時間的,特別是對于大對象來說消耗的時間更多.lazy可以實現(xiàn)對象的延遲加載。延時加載,意思是對象在使用的時候創(chuàng)建而不是在實例化的的時候才創(chuàng)建。

Lazy 對象初始化默認(rèn)是線程安全的,在多線程環(huán)境下,第一個訪問 Lazy 對象的 Value 屬性的線程將初始化 Lazy 對象,以后訪問的線程都將使用第一次初始化的數(shù)據(jù)。

一、延時加載主要應(yīng)用的場景:

  • 數(shù)據(jù)層(ADO.NET或Entity Framework等ORM,Java里面的Hibernate也用到了這種技術(shù))
  • 反射(加載assemblier,type,MEF)
  • 緩存對象,領(lǐng)域?qū)嶓w
  • 單例模式

二、簡單用法

如下:其中IsValueCreated屬相顯示其是否被創(chuàng)建。

static void Main(string[] args)
{
 Lazy lazyBig = new Lazy(); 
 Console.WriteLine("對象是否創(chuàng)建" + lazyBig.IsValueCreated);
 lazyBig.Value.Test(); 
 Console.WriteLine("對象是否創(chuàng)建" + lazyBig.IsValueCreated); 
} 

class Big {
 public Big() { } 
 public void Test() {
   Console.WriteLine("Test...."); 
}
 } //結(jié)果如下: //對象是否創(chuàng)建False //Test.... //對象是否創(chuàng)建True

由此可見,根據(jù)lazy創(chuàng)建的對象,只有當(dāng)?shù)谝淮问褂玫剿鼤r才會初始化.

另,lazy可使用委托來創(chuàng)建。

static void Main(string[] args)
{
    Lazy lazyBig = new Lazy( () => new Big(100) );
    lazyBig.Value.Test();
} 

class Big { 
  public Big(int id) { this.ID = id; }
  public int ID { get; set; }
  public void Test()
    {
        Console.WriteLine("ID = " + ID.ToString());
    }
}

到此這篇關(guān)于C#向數(shù)據(jù)庫中插入或更新null空值與延遲加載lazy的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#遍歷集合與移除元素的方法

    C#遍歷集合與移除元素的方法

    這篇文章主要介紹了C#遍歷集合與移除元素的方法,結(jié)合實例形式分析了C#使用for循環(huán)遍歷集合以及add與Remove方法進(jìn)行元素添加與移除的使用技巧,需要的朋友可以參考下
    2016-06-06
  • 在C#中如何使用Dapper詳解(譯)

    在C#中如何使用Dapper詳解(譯)

    這篇文章主要給大家介紹了關(guān)于在C#中如何使用Dapper的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧
    2018-09-09
  • C#面向?qū)ο笤O(shè)計原則之組合/聚合復(fù)用原則

    C#面向?qū)ο笤O(shè)計原則之組合/聚合復(fù)用原則

    這篇文章介紹了C#面向?qū)ο笤O(shè)計原則之組合/聚合復(fù)用原則,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C#模擬實現(xiàn)QQ窗體功能

    C#模擬實現(xiàn)QQ窗體功能

    這篇文章主要為大家詳細(xì)介紹了如何通過C#實現(xiàn)類似QQ窗體的功能,當(dāng)窗體放置到屏幕的邊緣,可以將窗體隱藏,當(dāng)鼠標(biāo)再次放置到屏幕邊緣時,窗體可再次顯示,需要的可以參考一下
    2022-12-12
  • C#中static靜態(tài)變量的用法實例

    C#中static靜態(tài)變量的用法實例

    這篇文章主要介紹了C#中static靜態(tài)變量的用法,實例分析了C#中static靜態(tài)變量的含義及具體用法,非常具有參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • C#連接mysql數(shù)據(jù)庫完整實例

    C#連接mysql數(shù)據(jù)庫完整實例

    這篇文章主要介紹了C#連接mysql數(shù)據(jù)庫的方法,以一個完整實例形式分析了C#操作mysql數(shù)據(jù)庫連接的基本技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • C#以太網(wǎng)Sockets客戶端設(shè)計實現(xiàn)

    C#以太網(wǎng)Sockets客戶端設(shè)計實現(xiàn)

    本文主要介紹了C#以太網(wǎng)Sockets客戶端設(shè)計實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 解析錯誤富文本json字符串(帶雙引號)的快速解決方法

    解析錯誤富文本json字符串(帶雙引號)的快速解決方法

    下面小編就為大家?guī)硪黄馕鲥e誤富文本json字符串(帶雙引號)的快速解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • C#實現(xiàn)獲取Excel中圖片所在坐標(biāo)位置

    C#實現(xiàn)獲取Excel中圖片所在坐標(biāo)位置

    本文以C#和vb.net代碼示例展示如何來獲取Excel工作表中圖片的坐標(biāo)位置,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-04-04
  • c# 免費組件html轉(zhuǎn)pdf的實現(xiàn)過程

    c# 免費組件html轉(zhuǎn)pdf的實現(xiàn)過程

    這篇文章主要介紹了c# 免費組件html轉(zhuǎn)pdf的實現(xiàn)過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評論

如东县| 济源市| 神池县| 綦江县| 吴桥县| 锡林郭勒盟| 论坛| 昌吉市| 布拖县| 菏泽市| 无棣县| 灵璧县| 灵丘县| 孟村| 康乐县| 云安县| 泗水县| 禄劝| 美姑县| 灌云县| 拉孜县| 平远县| 郧西县| 阳泉市| 延长县| 天门市| 三都| 上蔡县| 承德市| 定陶县| 金昌市| 石门县| 治多县| 灵璧县| 汕头市| 五家渠市| 安顺市| 手机| 扬州市| 罗平县| 卓资县|