c#ORM框架,自定义语法

博主分享了自己开发ORM框架OVLite的原因,包括理解原理、提升技能、定制需求等。通过对比,OVLite在新增操作上与手动实现耗时相近,而在90W条数据的查询中,OVLite比手写实现慢了约1000毫秒。后续文章将介绍实现细节和代码。
摘要由CSDN通过智能技术生成

前言

这是我第一次写技术博客,对语言和思路的组织都将是一次升华和洗礼,也希望能在这里结识到更多的朋友,一起学习,一起进步。代码或思路上有什么不对或需要改进的地方请您一定要告知我,万分感谢大家!!!。
本次分享的ORM框架我取名为:OVLite。

为什么要自己开发ORM框架

C#的ORM框架还是有蛮多的,那为什么还要自己开发呢?我认为呢:

  1. 不要只学会用,这是知其然不知其所以然的表现;
  2. 不要光看不练,这样最终还是没有将知识变成自己的(有的人认为我看完了别人的文章之后觉得原来就是这么实现,明白了,但是撇开文章之后让自己写却又无从下手);
  3. 自己开发完之后会收获很多东西,包括技术,思路。。。;
  4. 可定制化程度高,别人的不一定合适自己的项目;
  5. 培养自己的解题思路,可以借鉴别人的,但一定不要抄袭被人的(我一般看别人的软件第一个想法就是如果让我来写,我会怎么去实现它。或者看别人代码的时候我会想是否还有更好、更优的解决方案。我基本上需要的小工具都是自己写,以后会慢慢分享出来的);

先看看成果

新增

            var context = DataContextFactory.CreateDataContext();
            var db = context.CreateQueryContext<test>();
            //添加单个对象并返回对象
            var obj = db.Insert(new test
            {
   
                IsDeleted = false,
                KR_OriginalPassword = "123"
            });
            //Action添加并返回对象
            obj = db.Insert(c =>
            {
   
                c.KR_OriginalPassword = "123";
                c.IsDeleted = false;
            });
            //批量添加并返回已添加列表
            var list = db.Insert(new test[] {
    
                new test{
    KR_OriginalPassword = "123" },
                new test{
    IsDeleted = false }
            });
            //快速批量添加不返回对象
            db.QuickInsert(new test[] {
    
                new test{
    KR_OriginalPassword = "123" },
                new test{
    IsDeleted = false }
            });

删除

            //按主键批量删除并返回受影响行数
            var count = db.Delete(1, 2, 3);
            //按条件删除并返回受影响行数
            count = db.Delete(c => c.IsDeleted == false && c.KR_OriginalPassword == "123");

修改

            //按对象修改并返回是否成功
            var success = db.Update(new test {
    id = 1, KR_OriginalPassword 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值