STSdb4

1.打开文件并建一个简单的表格:

using (IStorageEngine engine = STSdb.FromFile("test.stsdb4"))

{

var table = engine.OpenXTable<int, Tick>("table");

for (int i = 0; i < 1000000; i++)

{

table[i] = new Tick();

}

engine.Commit();

}

从表格中读取:

using (IStorageEngine engine = STSdb.FromFile("test.stsdb4"))

{

var table = engine.OpenXTable<int, Tick>("table");

foreach (var row in table) //table.Forward(), table.Backward()

{

Console.WriteLine("{0} {1}", row.Key, row.Value);

}

}

key也可以自己写一个类key,然后:

var table2 = engine.OpenXTable <Key, Tick>("table2");

通过该属性看引擎实例:

IDescriptor descriptor = engine["table"];

删除table:

engine.Delete("table");

重命名table:

engine.Rename("table", "table_NewName");

table是否存在:

bool exists = engine.Exists("table");

e里面有多少table:

int tablesCount = engine.Count;

engine提供的接口:

public interface IStorageEngine : IEnumerable<IDescriptor>, IDisposable

{

ITable<IData, IData> OpenXTablePortable(string name, DataType keyDataType, DataType recordDataType);

ITable<TKey, TRecord> OpenXTablePortable<TKey, TRecord>(string name, DataType keyDataType, DataType recordDataType, ITransformer<TKey, IData> keyTransformer, ITransformer<TRecord, IData> recordTransformer);

ITable<TKey, TRecord> OpenXTablePortable<TKey, TRecord>(string name);

ITable<TKey, TRecord> OpenXTable<TKey, TRecord>(string name);

XFile OpenXFile(string name);

IDescriptor this[string name] { get; }

IDescriptor Find(long id);

void Delete(string name);

void Rename(string name, string newName);

bool Exists(string name);

int Count { get; }

int CacheSize { get; set; }

IHeap Heap { get; }

void Commit();

void Close();

}

匿名类型:

ITable<TKey, TRecord> OpenXTablePortable<TKey, TRecord>(string name);

已知类型

ITable<TKey, TRecord> OpenXTable<TKey, TRecord>(string name);

打开的table,则可以当成简单的集合:

table[key] = record;

table.Delete(key);

if (table.Exists(key))

{

}

foreach (var kv in table)

{

}

foreach (var kv in table.Forward(fromKey, toKey)) //table.Backward()

{

}

引擎的接口:

IDescriptor this[string name] { get; }

IDescriptor Find(long id);

void Delete(string name);

void Rename(string name, string newName);

bool Exists(string name);

int Count { get; }

int CacheSize { get; set; }

引擎大小:

long databaseSize = engine.Size;

table、file的接口:

public interface IDescriptor

{

long ID { get; }

string Name { get; }

int StructureType { get; }

DataType KeyDataType { get; }

Type KeyType { get; set; }

DataType RecordDataType { get; }

Type RecordType { get; set; }

IComparer<IData> KeyComparer { get; set; }

IEqualityComparer<IData> KeyEqualityComparer { get; set; }

IPersist<IData> KeyPersist { get; set; }

IPersist<IData> RecordPersist { get; set; }

IIndexerPersist<IData> KeyIndexerPersist { get; set; }

IIndexerPersist<IData> RecordIndexerPersist { get; set; }

DateTime CreateTime { get; }

DateTime ModifiedTime { get; }

DateTime AccessTime { get; }

byte[] Tag { get; set; }

}

来自为知笔记(Wiz)

时间: 2024-11-05 14:34:37

STSdb4的相关文章

准备.Net转前端开发-WPF界面框架那些事,搭建基础框架

题外话 最近都没怎么写博客,主要是最近在看WPF方面的书<wpf-4-unleashed.pdf>,挑了比较重要的几个章节学习了下WPF基础技术.另外,也把这本书推荐给目前正在从事WPF开发的程序猿. 现在书看完了也该实践实践,写了个WPF项目,主要以界面框架为主.  最近的几篇博客也主要围绕这个WPF项目,介绍下WPF搭建界面框架以及怎样写自定义的Windows界面和控件. 这也许是写最后几篇关于.Net技术的博客.做.Net开发也快五年了,感觉自己搞得不温不火,另外工作中正好有一个机会转做

STSDB 一

STSdb 4.0 是一个开源的NoSQL 数据库和虚拟文件系统,支持实时索引,完全用c#开发的. 引擎原理基于WaterfallTree(瀑布树)数据结构搭建 以下内容基于stsdb4.dll(4.0.3.0版本)库 , 官方地址:http://stsdb.com/ 1 using System; 2 using System.Collections.Generic; 3 4 namespace STSDB 5 { 6 [Serializable] 7 public class TStuden

ASP.NET MVC在实际项目中的实践

最近这两年一直使用ASP.NET MVC开发游戏周边的网站,包括交易平台.运营平台.推广系统等,还有一些小型的财务管理方面的网站.公司内部使用和自用的一般界面设计弱,经常使用LigerUI搞定大多数.下面挑一些能看的界面,顺便说一说我在团队中一直应用的前端原则. 一.交易平台: 首先这个是交易平台的,采用经典的DDD分层架构,采用到的框架.库和产品:ASP.NET MVC+Entity Framework+Structure+AutoMapper+Log4net+STSdb4+ChnCharIn