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 是一个交流移动 ...
随机推荐
- Hadoop项目实战-用户行为分析之应用概述(二)
1.概述 本课程的视频教程地址:<项目整体概述> 本节给大家分享的主题如下图所示: 下面我开始为大家分享第二节的内容——<项目整体概述>,下面开始今天的分享内容. 2.内容 从 ...
- Spring Boot Actuator监控应用
微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个环节出现了问题? ...
- JS nodeList转数组,兼容IE低版本
一.前言 nodeList转数组貌似很少会这样去操作,但我在做图片懒加载时,我获取了所有需要做懒加载的img元素,也就是一个NodeList对象,打个比方: 对这些元素进行src修改后,我想将此项从N ...
- CentOS 7 开启 SNMP 实现服务器性能监控
1.检测是否有 SNMP 服务 service snmpd status 2.若没有则安装 yum install -y net-snmp 3.编辑 SNMP 的配置文件,设置安全的验证方式 vi / ...
- 如何在 Linux 服务器上部署多个 Tomcat
开发管理项目时多多少少会遇到服务器不够用.一个项目分成多个子项目的情况,故研究了一下如何在一台服务器部署多个 Tomcat. 具体操作: 1.在 /tomcat/ 下部署多个 tomcat. 2.修改 ...
- C# 反射和Type类
一.元数据和反射 1.1 定义 大多数程序都要处理数据,包括读.写.操作和显示数据.然而,对于某些程序来说,它们操作的不是数字.文本或图形,而是程序和程序类型本身的信息. ● 有关程序及其类型的数据被 ...
- [java]我的数据在哪里?——数据的内存模型
在编写程序时,我们也许会有这样一个问题,我们编写的程序中的数据运行时,会保存在哪里呢?简单直接的回答可能是——内存.这个回答在多数情况下可能都是对的,但事实上并不准确,我们都知道内存,即随机访问存储器 ...
- 延迟初始化Lazy
延迟初始化出现于.NET 4.0,主要用于提高性能,避免浪费计算,并减少程序内存要求.也可以称为,按需加载. 基本语法: Lazy<T> xx = new Lazy<T>(); ...
- APiCloud学习
端API调用 核心模块在 window.api 对象下,默认提供该模块,不需要单独引用. 扩展模块在相应的模块对象下(例如:文件系统模块在fs对象下),需要require引入(var fs = api ...
- 使用Via浏览器+ADM下载器突破百度网盘下载限速
1.下载必要工具 via浏览器 ADM下载器 2.自定义 UA UA 是一串特殊字符,用来告诉所访问的网站,手机使用的操作系统及版本.CPU 类型.浏览器及版本等信息.UA 内容如下: Mozilla ...