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 是一个交流移动 ...
随机推荐
- Apktool的安装与使用
官网的安装方式如下图: 前提条件: Java 1.8版本已安装 通过在终端内输入"java -version"可以查看Java版本 因为我用的是MacBook,所以只介绍如何在Ma ...
- 从字节码层面看“HelloWorld”
一.HelloWorld 字节码生成 众所周知,Java 程序是在 JVM 上运行的,不过 JVM 运行的其实不是 Java 语言本身,而是 Java 程序编译成的字节码文件.可能一开始 JVM 是为 ...
- php中 ord() 和 chr() 处理 utf8 字符串
ord() : 将字符转为 ascii 码 (0-256),准确定义官方文档:http://php.net/manual/en/function.ord.php chr() : 将 ascii 码转 ...
- xhr.withCredentials发送跨域请求凭证
一.前言 今天遇到一个坑,浏览器请求数据的时候gg了.浏览器报错如下图: 因为请求头部设置了credentis mode is 'include', 从上面可以看出是Access-Control-Al ...
- netty源码解解析(4.0)-2 Chanel的接口设计
全名: io.netty.channel.Channel Channel内部定义了一个Unsafe类型,Channel定义了对外提供的方法,Unsafe定义了具体实现.我把Channel定义的的方法分 ...
- [转]Windows下配置Node.js和Cordova
本文转自:https://blog.csdn.net/weixin_37730482/article/details/74388056?locationNum=3&fps=1 本文讲解在win ...
- C#基础知识回顾-- 反射(2)
使用反射调用方法: 一旦知道一个类型所支持的方法,就可以对方法进行调用.调用时,需使用包含在 MethodInfo中的Invoke()方法.调用形式: object Invoke(object ...
- 【Linux】Centos之安装Nginx及注意事项
相关内容链接 [Linux]nginx常用命令 [nginx]详细配置说明 1.Nginx的简单说明 a. Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务 ...
- netty 基础
Netty是一个高性能.异步事件驱动的NIO框架,提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户 ...
- [工作总结]jQuery在工作开发中常用代码片段集锦(1-10)
1.jQuery,JS实现tab切换 原生JS实现 HTML代码如下: <div class="wrap"> <ul id="tag"> ...