当前位置: 首页 > 工具软件 > data2db > 使用案例 >

Linq2db基于事务方式访问数据库

萧和同
2023-12-01
   最近在写一个小软件OPC客户端,数据库用是的sqlite,之前都是自己写一个sqlhelper来访问数据库,后面听说用linq不用写sql语名,用起来很方便,听别人说linq2db是一款轻量型的linq,于是通过nuget安装了linq2db,安装好配置好数据库的映射就可以用了。
   发现用linq写数据库操作还真的是方便,写代码时有提示,编译通过了就肯定不会有问题了,不过在用的时候遇到一个问题,单条的增、删、改没有问题、但多条的增、删、必就不会了,一条条的操作的话很慢,效率很低,以前用sql语句时用事务的方法可以应对,现在用linq不会用了,在网上查了很多资料举的例子都是单条的增、删、改,没有讲事务的,后来在官网找到了,哎,资料还是官网全啊,不过要学好英语了。
   不多说了上代码,这是我写的linq2db基于事务的数据库访问代码,请大家批评指正
        DataDB db = new DataDB("ConnStr");

        bool ExcuteSuccess = true;
        db.BeginTransaction();//开始事务
        try
        {
            foreach (OPCTag tag in tags)
            {
                db.TbSampleItemSendFail.Where(ts => ts.Pid == tag.ID).Delete();
            }
        }
        catch (Exception ex)
        {
            ExcuteSuccess = false;
            throw ex;
        }
        finally
        {
            if (ExcuteSuccess == false)
            {
                db.RollbackTransaction();//事务回滚
            }
            else
            {
                db.CommitTransaction(); //提交事务
            }
        }
        return ExcuteSuccess;
 类似资料: