• Noebe v2.0 类库详解 NoebeManager


     

    Noebe v2.0 类库详解 NoebeManager

     

    介绍

    这个类是Noebe的整体控制体,负责初始化Noebe,获得各种有效资源。

    NoebeManager API

    属性概览

    Pixysoft.Framework.Noebe.Schema.DatabaseSchema

    DatabaseSchema
             get schema

    Pixysoft.Framework.Noebe.NoebeManager

    Instance

    Pixysoft.Framework.Noebe.NoebeAdapter

    NoebeAdapter
             get noebe adapter

    Pixysoft.Framework.Noebe.NoebeCommand

    NoebeCommand
             get noebe command

    Pixysoft.Framework.Noebe.NoebePrimaryKey

    NoebePrimaryKey
             get noebeprimarykey

    Pixysoft.Framework.Noebe.Querion

    Querion
             get querion

    Pixysoft.Framework.Noebe.Session

    Session
             get session

    Pixysoft.Framework.Noebe.SyncSession

    SyncSession
             get syncsession

    Pixysoft.Framework.Noebe.SyncTransaction

    SyncTransaction
             get syncTransaction

    Pixysoft.Framework.Noebe.Transaction

    Transaction
             get transaction



    方法概览

    void

    AddBuffer(string[] tables)
             add buffer of table into buffer layer

    System.Data.DataSet

    GetEntity()
             get all tables from noebe

    System.Data.DataTable

    GetEntity(string tableName)
             get table by tablename

    void

    Initialize()
             Init noebe by default path

    void

    Initialize(string path)
             nit noebe by manual path

    void

    Initialize(NoebeConfiguration config)
             init noebe by code

    void

    Initialize(NoebeConfiguration config,  DatabaseSchema ds)
             init noebe by code

    Noebe初始化

    初次使用Noebe的时候需要初始化,必须调用Initialize()静态方法。

    Noebe初始化的过程:



    在初始化过程中任意一步失败都会抛出异常。

    Noebe为用户提供了4种初始化方法。包括:

    l         Initialize(): 无参数初始化,此时Noebe会根据运行环境读取配置文件,默认的运行环境是dll所处的环境。配置文件包括:Noebe.config(必须), Noebe.Schema.config(可选)

    l         Initialize(string path): 指定路径读取配置文件。

    l         Initialize(config): 代码初始化,方便讨厌写配置文件的朋友。毕竟有些情况配置文件还是不安全的。

    l         Initialize(NoebeConfiguration, DatabaseSchema): 代码初始化Noebe配置和数据库架构对象

    添加缓存AddBuffer()

    用户输入需要缓存的表名,则Noebe能够自动抓取数据库,然后全选表数据,缓存到内存中。

    缓存机制说明

    Noebe使用MRU算法,即用的最多的数据会被保留下来。同时默认的数据量为每张表50条数据。

    获取DataTable: GetEntity()

    通过GetEntity()方法能够获得与数据库表结构对应的DataTable对象。

    是弱对象,不包含任何的主键、约束等信息。

    实质上,DataTable对象是Noebe根据数据库Schema动态生成的。

    获取数据库操作对象

    数据库操作对象包括Session, Querion等。

    这些对象通过接受用户输入的Datatable,然后和Noebe内部的Schema进行比对,当所有结构一致后,再进行数据库相应的操作。

    NoebeAdapterNoebeCommand是作为扩展对象存在,完全模拟了DataAdapterCommand操作。因此操作的输入参数DataTable不需要进行内部schema比对。增加了用户操作的灵活性。

    后话

    NoebeManager使用了Singleton设计模式,同时保证了线程安全。

  • 相关阅读:
    UVA 11374 Airport Express (最短路)
    UVA Live 3713 Astronauts (2-SAT)
    UVALive 3211 Now or Later (2-SAT)
    UVA 11324 The Largest Clique (强连通分量,dp)
    UVALive 4287 Proving Equivalence (强连通分量)
    UVA1665 Islands (并查集)
    UVA 1664 Conquer a New Region (Kruskal,贪心)
    UVA
    Gym 100342F Move to Front (树状数组动态维护和查询)
    Gym 100342E Minima (暴力,单调队列)
  • 原文地址:https://www.cnblogs.com/zc22/p/925175.html
Copyright © 2020-2023  润新知