- // 普通参数
- var sql = "update Te_User set NickName=@P2 where Id=@P1";
- var ps = new DataParameter[2];
- ps[0] = new DataParameter("P1", 5);
- ps[1] = new DataParameter("P2", "abc");
- var executor = context.CreateSqlStringExecutor(sql, ps);
- var ret = executor.ExecuteNonQuery();
- // 对象参数
- var sql = "update Te_User set NickName={nickname} where Id={id}";
- var executor = context.CreateSqlStringExecutor(sql, new { nickname = "abc", id = 5 });
- var ret = executor.ExecuteNonQuery();
单元测试
项目使用 xUnit 做单元测试, 测试代码地址:
每种数据库均有 300 多组 1000 多用例的测试, 覆盖大部分代码.
性能测试
目前只跟 EF Core 在同一电脑的 Docker 上的 Sql Server 2017 for Linux 中做简单的增删改查性能对比测试, 代码地址 https://github.com/aquilahkj/OrmTest
1000 次的增删改和单条数据查询
共 5 轮, 每轮 1000 条的增删改和 1000 条数据查询
EF 的测试结果
Light.Data 测试结果
从对比看, 查询性能两者差不多, 新增性能 Light.Data 稍微占优, 批量更新也稍微占优.
另外值得一提的是 Postgre, 批量增删改性能比 Sql Server 快 2,3 倍, 看来以后也要好好研究一下.
以上均是非严谨测试, 仅供参考.
最后
本文只是简单的介绍, 具体使用方法可以查看文档和参考测试用例, 如有需要会写具体使用的文章.
Light.Data 这个项目这么多年来个人一直维护, 也在不断优化, 不断成长, 但一直养在深闺, 好不容易折腾开源也是希望能共享出去, 给有需要的朋友多个选择, 同时也是给自己这么多年码农的见证.
虽然现在 ORM 的框架非常非常多, 也不是什么热门新鲜事物, 但总归是个基础的东西.
如果有朋友喜欢, 不妨试试, 可以的话, 给个 Star, 十分欢迎意见或建议 :D
来源: https://www.cnblogs.com/aquilahkj/p/10888837.html