知识大全 C#开源轻量级对象数据库NDatabase介绍[1]
Posted 数据库
篇首语:少成若天性,习惯如自然。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#开源轻量级对象数据库NDatabase介绍[1]相关的知识,希望对你有一定的参考价值。
C#开源轻量级对象数据库NDatabase介绍[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
前言
NDatabase是一个易于使用的 NET对象数据库 为了避免关系数据库带来的开销 可以尝试用NDatabase NDatabase是新一代的面向对象数据库 个原生的 NET数据库持久层 它的主要特征有
·简单 NDatabase非常简单 很容易学习上手使用 它API是简单 不需要学习任何数据库映射技术 不需要对象和存储持久层之间的映射 NDatabase以最简单的方式存储对象 不需要安装和管理
·小 NDatabase 运行时小于 Kb 部署程序的时候 很容易集成到 NET应用程序中去
·安全健壮 NDatabase支持ACID事务处理 保证数据的完整性 即使在硬件故障的情况下 所有的提交工作都会应用到数据库 在下一次启动的时候自动执行
·单一数据库文件 NDatabase使用单一的文件存储所有的数据 包括元数据 对象 索引等
·生产率 NDatabase使用很少的代码来进行数据持久化 不需要映射 因此 开发人员可以专注于业务逻辑的实现 而不是在数据持久层浪费时间
NDatabase入门
基础设置
NDatabase中所有的数据库引擎设置都在OdbConfiguration类中 如BTree Validation 和BTree index degree的设置都在这个类里面 打开日志的设置也在这个类里面 NDatabase提供了默认的日志类实现 ConsoleLogger 可以使用OdbConfiguration类中的EnableConsoleLogger方法进行设置 实现好自定义的日志类后 还需要进行注册RegisterLogger方法 才能够使用
OdbConfiguration RegisterLogger(new Log NetLogger())
使用索引
使用IOdb接口的IndexManagerFor方法可以为指定类型添加索引 如
using (var odb = OdbFactory Open( index ndb ))
var fields = new[] Name ;
odb IndexManagerFor<Player>() AddUniqueIndexOn( nameIndex fields)
odb IndexManagerFor<Game>() AddIndexOn( nameIndex new[] Result )
使用事务
NDatabase可以使用事务来保证数据的完整性(ACID:原子性 一致性 隔离性 持久性) 当一个NDatabase被打开后 将会自动创建一个会话 包含一个特殊的当前事务对象 这个事务对象实例管理当前所有的数据和数据操作行为
内存数据库模式
NDatabase可以将数据库所有数据直接加载到内存中 直接使用OdbFactory方法的 OpenInMemory即可
关于触发器
要增加一个触发器 首先要建立一个实现了Trigger 接口()的类 该接口有 种可用的类型(InsertTrigger UpdateTrigger SelectTrigger DeleteTrigger) 如
public class MyTrigger : InsertTrigger
public override bool BeforeInsert(object obj)
return true;
public override void AfterInsert(object obj OID oid)
在使用过程中 打开数据库后 要注册触发器 才能使用
var mage = new Mage( Merlin )
var myTrigger = new MyTrigger()
using (var odb = OdbFactory Open( inserting_trigger db ))
odb TriggerManagerFor<Mage>() AddInsertTrigger(myTrigger)
odb Store(mage)
cha138/Article/program/net/201311/16138
相关参考
知识大全 C#开源轻量级对象数据库NDatabase介绍[3]
C#开源轻量级对象数据库NDatabase介绍[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
前两天看到Warpframework的介绍它基于GoogleGuice是一个轻量级的web开发框架它的Dynamicfinder特性实在让人兴奋代码非常简单支持注入大大简化了DAO层的开发下面看看
提到为了传递数据需要把作为载体的实体类序列化好好的找了一些序列化方面的介绍感觉下面的这个介绍比较容易介绍! 什么是序列化 序列化是将对象状态转换为可保持或传输的格式的过程在序列化过程中对象的公
c#开源项目Vmukti 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c#开源项目Vmukti
C#开源资源大汇总 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一AOP框架 Encase
知识大全 高级java工程师-------hibernate的作用和关键点
一在ssh框架中hibernate的作用是什么呢? hibernate是一种ORM(对象映射)框架的持久性框架它是对JDBC做了轻量级的封装使得程序员可以面向对象思维的对数据库进行操作 支持各
C#高级编程:数据绑定对象[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
C#高级编程:数据绑定对象[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
C#高级编程:数据绑定对象[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
C#高级编程:数据绑定对象[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs