C萼はLinqと反射に基づいて、データの耐久性フレームXml 4 DBを実現します。


現在のデータベースのほとんどが関係データベースであることを知っています。いわゆる関係型データベースとは、関係モデルに基づいたデータベースシステムを指します。例えば、Oracle、SQL Server、Access、MySQLなどです。関係モデルとは、二次元テーブルモデルのことであり、関係データベースとは、二次元テーブルとその間の連絡からなるデータ組織のことである。偶然の機会にDB 4 Oに接触しました。これは完全に対象に向けたオープンソースデータベースです。その出現は伝統的なデータベースの人々の心の中のイメージを完全に覆しました。伝統的なデータベースはデータ体と実体の間で変換しなければならないし、マッピングファイルがマッピング関係を提供する必要があるからです。このプロジェクトによって、Xml 4 DBを作成するという考えが生まれました。この名前から太字で見ることができます。Xmlに基づいて保存しています。一つのオブジェクトを一定の形で保存することを、プログレッシブといい、逆に逆プログレッシブといい、従って反射はプロジェクト全体の中で最も面白くて強力な基礎となることを知っています。データベースの検索が必要なので、Linqは私の設計項目の第一選択となりました。Xml 4 DBは使いやすいようにして、DB 4 Oの優雅な方法を参考にしました。
Xml 4 DBをダウンロードします
抽出コード:e 71
次に、Xml 4 DBの使い方を説明しましょう。Xml 4 DBでは重要なクラスは二つしかありません。XmlDBとXmlDB FactoryはXmlDB Factoryを使うだけでXmlDBの作成ができます。XmlDB Factoryは静的工場類であり、三つの方法を提供しています。
1、CreatXmlDB()方法はカバー方式でデータベースを作成する。データベースファイルが存在しない場合は、データベースを作成します。データベースが存在する場合は、データベースを上書きします。この方法は初めてデータベースを作成する時に使用します。
2、LoadXmlDB()方法は既に存在しているデータベースを取得するために用いられ、データベースファイルが存在しないと異常を引き起こす。
3、UpdateXmlDB()はアップグレードしてXmlDBデータベースを作成します。前提はデータベースファイルが既に存在しており、新しく作成したデータベースのバージョンは前のバージョンより高いです。
完成工場を紹介します。データベース種類のXmlDBについて説明します。このような中でよくあるデータベース方法を定義しました。
1、Insert()メソッドはデータベースにオブジェクトを挿入するためのものです。
2、Read()方法は、データベースから1つ以上のオブジェクトを読み取り、List<T>に戻るために使用される。
3、Delete()メソッドは、データベースからオブジェクトを削除するためのものです。
4、Update()メソッドは、1つ以上のオブジェクトの値を対応する同じ種類の値に修正するために使用されます。
ここでは例示的なプログラムコードを提供します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using Xml4DB;
 
namespace Xml4DB.Sample
{
  class Program
  {
    static void Main(string[] args)
    {
      //       XmlDB
      XmlDB mDB = XmlDBFactory.CreatXmlDB("XmlDB    ","D:\\XmlDB    \\Sample.xml",1);
      //  Student     
      Student mStudent = new Student(1, "   ", 18);
      //  Student     
      mDB.Insert(mStudent);
      //  Student     
      mStudent = new Student(2, "   ", 37);
      //  Student     
      mDB.Insert(mStudent);
      //  Student     
      mStudent = new Student(3, "   ", 17);
      //  Student     
      mDB.Insert(mStudent);
      //  Student      
      mStudent = new Student(4, "    ", 20);
      //  Student      
      mDB.Insert(mStudent);
      //    
      mDB.Commit();
 
      //         Student  
      List<Student> objects = mDB.Read(new Student(0, "   ", 0));
      //      
      Console.WriteLine(objects[0].ToString());
 
      //                   ,    40
      mDB.Update(new Student(0, "   ", 0), new Student(0, "   ", 40));
      //  ID 3     
      mDB.Delete(new Student(3, null, 0));
      mDB.Commit();
 
      //     Student  
      objects = mDB.Read(new Student());
      foreach (Student obj in objects)
      {
        Console.WriteLine(obj.ToString());
      }
 
      //        
      Console.ReadKey();
    }
 
    /// <summary>
    /// XmlDB   
    /// </summary>
    public class Student
    {
      public Student()
      {
 
      }
 
      public Student(int mID,string mName,int mAge)
      {
        this.mID = mID;
        this.mName = mName;
        this.mAge=mAge;
      }
 
      private int mAge;
      public int Age
      {
        get { return mAge; }
        set { mAge = value; }
      }
 
      private int mID;
      public int ID
      {
        get { return mID; }
        set { mID = value; }
      }
 
      private string mName;
      public string Name
      {
        get { return mName; }
        set { mName = value; }
      }
 
      public override string ToString()
      {
        return string.Format("ID={0},Name={1},Age={2}", this.ID, this.Name,this.Age);
      }
    }
  }
}
どうですか?簡単な感じですか?このプロジェクトはXmlをデータとして保存する形式を採用していますので、最終的なデータベースファイルはXmlファイルです。

<?xml version="1.0" encoding="utf-8"?>
<XmlDB DBName="XmlDB    " DBVersion="1">
 <Student>
  <Age>18</Age>
  <ID>1</ID>
  <Name>   </Name>
 </Student>
 <Student>
  <Age>37</Age>
  <ID>2</ID>
  <Name>   </Name>
 </Student>
 <Student>
  <Age>17</Age>
  <ID>3</ID>
  <Name>   </Name>
 </Student>
 <Student>
  <Age>20</Age>
  <ID>4</ID>
  <Name>    </Name>
 </Student>
</XmlDB>
休暇期間が限られているため、現在のプロジェクトはフルサイズとキャラクタータイプの基本タイプのみをサポートしています。現在のところ、一部のアルゴリズムは完全ではないので、このプロジェクトは入れ子のタイプの属性をサポートしていません。後に時間があれば、徐々にこのプロジェクトを改善していきます。なお、この項目では全型のデフォルト値は0、文字型のデフォルト値はnullとなりますので、対象にこのような属性値を与えないでください。各オブジェクトエンティティは、デフォルトでは、内部構造に反射技術が使用されているので、パラメータを持たない構造関数を与えます。みんなが好きになることを望んで、ありがとうございます。皆さんの応援に感謝します。