sqlite采用的ORM包

关注了两个库的使用方式,一个是Dapper,一个是Simple.Data.考虑一个可选的是ORMLite,

Dapper和simple.data都比较好用,动态对象的使用妙不可言,区别在于

//Dapper
 using (var cnn = SimpleDbConnection())
    {
        cnn.Open();
        customer.Id = cnn.Query<long>(
            @"INSERT INTO Customer 
            ( FirstName, LastName, DateOfBirth ) VALUES 
            ( @FirstName, @LastName, @DateOfBirth );
            select last_insert_rowid()", customer).First();
    }
//Simple.data
db.Users.Insert(Name: "Steve", Password: "Secret", Age: 21);
public User FindUserByEmail(string email)
{
    return Database.Open().Users.FindAllByEmail(email).FirstOrDefault();
}

 

比较起来,Dapper更轻巧,着眼于IDBConnection的扩展使用,SQL的生成偏重于文本模板理念,所以Dapper不需要针对特定数据库进行包装。

Simple.Data的SQL生成基于动态方法和属性,例如上面的例子,Users和FindAllByEmail不需要定义,Simple.Data会对此解释后生成特定的SQL。

至于Simple.Data为什么要对数据库要进行包装,暂时不研究,暂时使用Dapper这个库,我现在对Sqlite数据库的使用比较轻度。

两篇参考文章:

SQLite + Dapper = Simple Data Access Layer

Simple.Data for Microsoft .NET Data Access Layer

posted @ 2014-01-01 23:46  真幻de现实  阅读(615)  评论(0编辑  收藏  举报