Linq2DB之研究和探索
1,对linq2db使用看法
最近在研究linq2db,用起来还不错,性能还不错的。之前也在博客园有些网友说用ado.net和depper写SQL语句,性能还要高。有时候牺牲点性能,为了提高开发效率,还是要用的。大家应该都知道拼接SQL语句,如果简单的SQL拼接起来还可以接受,要拼接什么链表查询,什么一对多表,什么多对一,那拼接起来真是操蛋啊!一个字符错,就全盘都错了。
不想拼接sql语句的话,用linq2DB居家写代码必备利器。
Linq2DB优点:(个人认为,嘻嘻)
1, 使用T4模板自动生成实体类,不用使用其他代码生成器了。方便
2, 集成了linq语法和lambada表达式的写法。
3, 快速实现增删改。
2,在https://linq2db.github.io/ 介绍Linq2DB
LINQ to DB
LINQ to DB是最快的LINQ数据库访问库,在POCO对象和数据库之间提供简单,轻便,快速且类型安全的层。
从结构上讲,它比Dapper,Massive或PetaPoco等微ORM更上一步,因为你使用LINQ表达式而不是魔术字符串,同时在代码和数据库之间保持一个薄的抽象层。您的查询由C#编译器检查,并允许轻松重构。
但是,它没有LINQ to SQL或Entity Framework那么重。没有变更跟踪,因此您必须自己管理,但从积极的方面来说,您可以获得更多控制权并更快地访问您的数据。
换句话说,LINQ to DB是类型安全的SQL。
3, VS2017 安装linq2db
- 3.1在VS 程序包管理器控制台输入:Install-Package linq2db - .NET和.NET Core,VS就帮你下载这个linq2db包。
- 3.2在您的
web.config或app.config确保您有一个连接字符串
- <connectionStrings>
- <add name="Northwind"
- connectionString = "Server=.\;Database=Northwind;Trusted_Connection=True;Enlist=False;"
- providerName = "SqlServer" />
- </connectionStrings>
- 3.3,安装好了linq2db包,在对应的类库生成文件夹LinqToDB.Templates

- 我们打开这个文件修改里面的CopyMe.SQLite.tt.txt文件(我用sqlite数据库),把他改成MyContext.tt,
- 同时也要修改连接数据库的字符串。

4,实现增删改:
- 增:
·using(var db =newDbNorthwind())
·{
·db.Insert(product);
· }
- 改:
·using(var db =newDbNorthwind())
·{
·db.Update(product);
· }
- 删:
·using(var db =newDbNorthwind())
·{
·db.Product
·.Where(p => p.Discontinued)
·.Delete();
· }
有写的不对,希望各路大神批评指正。
Linq2DB之研究和探索的更多相关文章
- 基于 Equinox 的 OSGi Console 的研究和探索
自定制 OSGi Console 进行组建和服务生命周期管理模块化编程的好处已经很好地被理解了约 40 年,但在 OSGi 之前,开发人员不得不自己发明模块化设计和系统.随着软件应用体系结构的不断发展 ...
- Scrapy研究和探索(五岁以下儿童)——爬行自己主动多页(抢别人博客所有文章)
首先.在教程(二)(http://blog.csdn.net/u012150179/article/details/32911511)中,研究的是爬取单个网页的方法.在教程(三)(http://blo ...
- Scrapy研究和探索(七)——如何防止被ban大集合策略
说来设置的尝试download_delay少于1,不管对方是什么,以防止ban策略后.我终于成功ban该. 大约scrapy利用能看到以前的文章: http://blog.csdn.net/u0121 ...
- 对html与body的一些研究与理解
by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=259 一.写在前面的最 ...
- 王亮:游戏AI探索之旅——从alphago到moba游戏
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云加社区技术沙龙 发表于云+社区专栏 演讲嘉宾:王亮,腾讯AI高级研究员.2013年加入腾讯,从事大数据预测以及游戏AI研发工作.目前 ...
- 探索式软件测试—Exploratory Software Testing
最近找到去年上半年看过一本关于测试方面书籍的总结笔记,一直放在我的个人U盘里,当时是用Xmind记录的,现在重新整理下分享给大家了! James A.Whittaker [美] 詹姆斯·惠特克(软件测 ...
- 深度学习实战篇-基于RNN的中文分词探索
深度学习实战篇-基于RNN的中文分词探索 近年来,深度学习在人工智能的多个领域取得了显著成绩.微软使用的152层深度神经网络在ImageNet的比赛上斩获多项第一,同时在图像识别中超过了人类的识别水平 ...
- 寄生线虫免疫学研究新路径!华中农业大学胡敏团队报道寄生线虫N-糖基化修饰图谱
N-糖基化修饰是真核生物中一种重要的蛋白质翻译后修饰,在许多生物学过程中起着关键作用,包括蛋白质折叠.受体-配体相互作用.免疫应答和疾病发病机制等.近年来,高精度质谱技术的出现促进了糖组和糖蛋白质组的 ...
- 【腾讯Bugly干货分享】H5 视频直播那些事
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6503dfcb22007ede8 Dev Club 是一个交流移动 ...
随机推荐
- 修改Spring Boot默认的上下文
前言 默认情况下,Spring Boot使用的服务上下文为"/",我们可以通过"http://localhost:PORT/" 直接诶访问应用: 但是在生产环境 ...
- PostgreSQL Json字段作为查询条件案例
业务扩展字段在数据库中经常会使用json格式的数据来存储,这就涉及到一个头疼的问题,假设要使用扩展字段里的某个值作为查询条件怎么办,原来PostgreSQL本身就支持这种查询方式. 例子:假设业务扩展 ...
- RocketMQ 分布式事务
在RocketMQ中生产者有三种角色NormalProducer(普通).OrderProducer(顺序).TransactionProducer(事务),根据名字大概可以看出各个代表着什么作用,我 ...
- 反调试手法之CreateProcess反调试
反调试手法之CreateProcess反调试 在学习Win32 创建进程的时候.我们发现了有一个进程信息结构体. STARTUPINFO. 这个结构体可以实现反调试. 具体CreateProcess可 ...
- centos适用的国内yum源:网易、搜狐
默认的yum源是centos官网的,速度慢是不用说了.所以使用yum安装东西之前需要把yum源改为国内的.参考 http://mirrors.163.com/.help/centos.html 和 h ...
- PHP四大基本排序算法实例
PHP四大基本排序算法包括:冒泡排序法,快速排序法,选择排序法,插入排序法. 1. 冒泡排序 思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往 ...
- Linux IPC基础(System V)
简介 IPC 主要有消息队列.信号量和共享内存3种机制.和文件一样,IPC 在使用前必须先创建,使用 ipcs 命令可以查看当前系统正在使用的 IPC 工具: 由以上可以看出,一个 IPC 至少包含 ...
- WebFrom 小程序【条件查询与分页整合】
将前面的条件查询功能与分页显示整合到一个页面中 <%@ Page Language="C#" AutoEventWireup="true" CodeFil ...
- Linux 学习记录 四(Bash 和 Shell scirpt).
一.什么是 Shell? 狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工 ...
- Starting zookeeper ... already running as process 1805错误
启动zookeeper的时候,报Starting zookeeper ... already running as process 1805错误 上面这个错误意思为以作为进程1805运行.系统检测到你 ...