ServiceStack中集成了数据库的操作类库OrmLite,简化了编写服务代码时读取数据库的繁琐操作,通过ORM,直接将数据库中的数据,读取映射到C#中的model上,当然此类库也可单独引用进行使用,作为C#操作一个数据库的类库使用。

对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的--“虚拟对象数据库”。--来自互联网

下边根据一个示例,简单说一下,如何通过ServiceStack的OrmLite进行数据库的操作。

引用的类库,红框中是必须要引用的,

ServiceStack.OrmLite.SqlServer是根据本身要连接的数据库,按需的,使用mysql,postgresql等数据库,就需要引用对应版本的类库。

ServiceStack:OrmLite操作数据库_数据库


配置里添加数据库的连接字符串,和正常在C#中开发数据库的连接字符串一样的,例如,sqlserver的连接:

Data Source=ip地址;

Initial Catalog=数据库名称;

User ID=sa;

Password=密码;

初始化一个数据库的连接:

var _sqlserverFla =

OrmLiteConnectionFactory

(‘连接字符串’, SqlServerDialect.Provider);


既然是orm,需要根据数据库,建立对应的模型,才能进行数据库里的操作,在C#里就是model,model里的字段要和数据表中对应的名称保持一致,数据类型尽量也要保持一致,

 public class model1

    {

       public string prop1{ get; set; }

       public string prop2{ get; set; }

       public double prop3{ get; set; } 

    }

打开数据库的连接,判断是否有对象,删除对象的数据,可以使用这种方式,也能编写sql语句。

 using (var db = _sqlserverFla.Open())

                {

      if (db.Exists<model1>(string.Format("select * from model1 where currentdate='{0}'", _currentdate)))

        db.ExecuteSql(string.Format("delete from model1 where currentdate='{0}'", _currentdate));

               }

获取单一的条数据,结果是一个model对象。

var _aqiDayLst = db.Single<model1>("sql语句");

获取多条的数据,一个list的model对象

var lstmodel = db.Select<model1>("sql语句");

插入数据,可以插入单条数据,也可以插入多条数据:

var _isSuc = db.Save<model1>(‘数据’); 


以上就是简单的介绍,要想详细学习,可以去ServiceStack的官方网站进行详细的查看。