日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
開源.NET下的XML數(shù)據(jù)庫介紹及入門

 比如我這次遇到的。一個小得不能小的工具,本來用sqlite+XCode很快就可以搞定的東東,“領(lǐng)導(dǎo)”說非要用XML存儲,那好吧。就用XML,雖然.NET操作XML很方便,但很好做。我的***反應(yīng)是找一個C#操作XML文件的類,應(yīng)該差不多了。沒想到就發(fā)現(xiàn)了XML數(shù)據(jù)庫這么個玩意,試用,初步還是不錯的,雖然有些小問題,也很久沒更新了。代碼資料還是老樣子,規(guī)矩看前面的博客說明,不在提示了。

成都服務(wù)器托管,成都創(chuàng)新互聯(lián)公司提供包括服務(wù)器租用、服務(wù)器托管、帶寬租用、云主機、機柜租用、主機租用托管、CDN網(wǎng)站加速、國際域名空間等業(yè)務(wù)的一體化完整服務(wù)。電話咨詢:18982081108

XML Database初步介紹

XML Database是一套基于.NET 和 XML技術(shù)開發(fā)的數(shù)據(jù)庫產(chǎn)品,開發(fā)者是博客園的陳希章。其定位是面向.NET開發(fā)平臺的、小型的、面向?qū)ο蟮臄?shù)據(jù)庫,比較適合于本地數(shù)據(jù)緩存、嵌入式數(shù)據(jù)庫應(yīng)用的場景。上次更新日期是2011年了,沒有仔細去研究源碼,核心的程序集也才25K,所以夠輕量級。那說說其基本特點,更新后的版本的說明沒有找到,就看最老的版本的吧:

1.完全基于XML的存儲。數(shù)據(jù)庫的配置信息和對象數(shù)據(jù)、索引、日志全部是用XML格式保存的。這樣的出發(fā)點主要是XML數(shù)據(jù)格式很易于閱讀和傳輸,轉(zhuǎn)換。

2.基于文件夾的數(shù)據(jù)存儲。這個作者曾經(jīng)有些猶豫,有時候也覺得沒必要,但如果關(guān)系復(fù)雜點的對象,還是有用的。

3.完全基于.NET編寫,結(jié)合了LINQ的語法。這個數(shù)據(jù)庫引擎也可以算是一個所謂的嵌入式的數(shù)據(jù)庫引擎吧,它是通過一個dll提供了全部的功能。目前提供的查詢是基于LINQ to Object的,所有的操作都是面向?qū)ο蟮摹?/p>

4.目前有的功能主要是數(shù)據(jù)庫的創(chuàng)建、打開和關(guān)閉,以及面向?qū)ο蟮脑鰟h查改,簡單的批處理和事務(wù)控制等。

簡單入門例子

存儲是面向?qū)ο蟮?,對每一條數(shù)據(jù),都會有一個GUID編號,可以去看生成的XML文件得知。平時我們要存儲在數(shù)據(jù)庫的對象,一般就是實體了,那看看我這個實體的簡單結(jié)構(gòu):

 
 
  1. /// 人臉數(shù)據(jù)  
  2.  public class Faces 
  3.  {
  4.      #region 屬性
  5.      /// 姓名       
  6.      public String Name { get; set; }    
  7.      /// 年齡
  8.      public Int32 Age { get; set; }           
  9.      /// 性別
  10.      public String Sex { get; set; }  
  11.      /// 手機號碼       
  12.      public String Tel { get; set; }   
  13.      /// 圖片位置      
  14.      public String Position { get; set; }
  15.      /// 圖像的特征值,不支持存儲數(shù)組類型,要轉(zhuǎn)換才行      
  16.      public string Eigenvalue { get; set; }
  17.      #endregion
  18.  }

值得注意的是,我試了一下,好像不支持存儲數(shù)組結(jié)構(gòu),所以是數(shù)組的,要手動轉(zhuǎn)換一下。比如這個特征值,是double[]數(shù)組,用的時候,讀出來,要轉(zhuǎn)換為double[]才能用。格式嘛,自己定。看基本操作:

 
 
  1. //數(shù)據(jù)庫沒有會自動創(chuàng)建
  2.    using (XDatabase db = XDatabase.Open(Main.DbName))
  3.    {    
  4.        //然后循環(huán)將特征值和圖像對應(yīng)起來,添加到數(shù)據(jù)庫
  5.        for (int i = 0; i < 20; i++)
  6.        {
  7.            //添加圖片信息
  8.            Faces cut = new Faces();
  9.            cut.Name = Names[i];
  10.            cut.Sex = Sexs[i];
  11.            cut.Tel = Teles[i];
  12.            cut.Age = Ages[i];
  13.            cut.Position = fileNames[i];
  14.            //添加特征值
  15.            cut.Eigenvalue = DoubleArrayToString (MeanB[i]);
  16.            //保存到數(shù)據(jù)庫
  17.            db.Store(cut);
  18.        }
  19.    //查詢,結(jié)果是IEnumerable類型,可以用LINQ操作
  20.        var t = db.Query();     
  21.    }

其實很簡單,輕量級的操作就是保存和查詢,更新,更新的操作很簡單,和保存一樣,內(nèi)部會識別是新增的數(shù)據(jù)還是更新數(shù)據(jù)。查詢的結(jié)果是IEnumerable類型,所有可以很方便的使用LINQ來得到你所要的結(jié)果。

當(dāng)然還可能有其他的一些功能,比如事務(wù),我的工具太簡陋,沒有用上,可以研究下。

說明一下,不要也不要說功能有限,有時候我們的需求就這樣,簡單的可以就行,沒必要搞那么復(fù)雜。OK,就算拋磚引玉吧,作者后來的更新也沒有說明,如果使用,可以用Nuget來獲取***的安裝包,地址看下節(jié)。

相關(guān)資源

開源網(wǎng)址:http://xmldatabase.codeplex.com/

作者博客:http://www.cnblogs.com/chenxizhang/

Nuget地址:http://nuget.org/packages/XMLDatabase


網(wǎng)頁題目:開源.NET下的XML數(shù)據(jù)庫介紹及入門
網(wǎng)頁URL:http://www.5511xx.com/article/cdjejoh.html