.netcore-FreeSql的使用-搭建context
之前用netcore搭建了一个小项目,数据库操作用的是要手写sql语句的connection和command,一直想调个EFCore或者类似SOA那样的框架
今天看到了DotNet公众号提到的.NET Core新型ORM,于是兴起打算试试如何去使用
其推文转自
cnblogs.com/kellynic/p/10645049.html
1. 要搭建context,则自然需要继承自框架的DbContext
先新增Nuget包——FreeSql,但是要注意的是FreeSql.DbContext并不是在原始包中,而是一个拓展的类
故还需要在Nuget控制台输入命令:dotnet add 项目名 package FreeSql.DbContext将拓展包安装好
然后就与EF那样重写配置方法
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var _fsql = new FreeSqlBuilder()
.UseConnectionString(dataType, OACommon.DatabaseHepler.ConnectionString)
.Build();
optionsBuilder.UseFreeSql(_fsql);
}
2. 定义DbSet变量,注意:实体类名称要与数据库表名称保持一致
3. 一开始我以为还需要向EF那样定义map,可是当我直接调用DbSet变量,发现竟可以获取到表数据,猜测应该是通过实体名称反射得到的表名
using (var db = new OAModels.FreeSqlManager.FSqlContext())
{
var users = db.user_info.Select.ToList();
}
4. 至此,FreeSql的context算是搭建完成,但遇到两个问题:
1)是否可以使用linq操作?稍微试了一下,不行,后续再看看有没有什么办法
不支持
2)联表查询LeftJoin,得到的实体还是调用了select的那个实体,即没有另一个表的数据,如何得到另一个表中想要的数据呢?
可以试试评论中的写法:LeftJoin 定义约定的导航对象,会一起查询返回
越努力越幸运,努力需要自制,希望自己能够有更强的自制力!感恩自信自律!
.netcore-FreeSql的使用-搭建context的更多相关文章
- NetCore+Dapper WebApi架构搭建(六):添加JWT认证
WebApi必须保证安全,现在来添加JWT认证 1.打开appsettings.json添加JWT认证的配置信息 2.在项目根目录下新建一个Models文件夹,添加一个JwtSettings.cs的实 ...
- NetCore+Dapper WebApi架构搭建(一):基本框架
初衷是想用dapper搭建一个高性能的架构,因为dapper操作数据库的效率很高 1.VS创建一个NetCore WebApi的框架,然后解决方案添加一个NetStandard的类库 整个解决方案如图 ...
- 一个简单的NetCore项目:1 - 搭建框架,生成数据库
1- 启动项目 安装.NETCORE SDK,教程在网上可以搜索的到,这里就不讲述了.简单粗暴的方式就是安装最新的VS2015. 2-搭建框架 2.1 打开VS新建一个项目,在弹出的新建项目对话框中, ...
- FreeSql增加新特性Context
源 FreeSql 作者做了很完善的组件 我看了一下,感觉很实用,使用上有很大的可自定义操作的地方,跟传统Orm固定格式不同,也异于Dapper的设计,支持表达式树 原地址 https://www.c ...
- NetCore+Dapper WebApi架构搭建(四):仓储的依赖注入
上一节我们讲到实体,仓储接口和仓储接口的实现需要遵循约定的命名规范,不仅是规范,而且为了依赖注入,现在我们实现仓储的依赖注入 在NetCore WebApi项目中新添加一个文件夹(Unit),当然你也 ...
- NetCore+Dapper WebApi架构搭建(二):底层封装
看下我们上一节搭建的架构,现在开始从事底层的封装 1.首先需要一个实体的接口IEntity namespace Dinner.Dapper { public interface IEntity< ...
- .NetCore WebApi + Vue +MySql搭建博客
因为我是一直写C#的,所以最近闲暇时间一直在学习.NET Core,该博客的后端使用的就是.NET Core WebApi然后加前端Vue. 首先后端.NET Core搭的框架是一个仓储层+服务层+A ...
- NetCore+Dapper WebApi架构搭建(五):Swagger构建WebApi界面
上一节讲解了仓储的依赖注入,想必现在都可以通过构造函数依赖注入直接调用 但是WebApi只是提供一个接口调用,为了方便我们的操作,我们得给他加上一个图形化界面工具,使用Swagger WebApi项目 ...
- NetCore+Dapper WebApi架构搭建(三):添加实体和仓储
上一节讲了类库添加一些底层的基本封装,下面来添加实体和仓储 1.Entities文件夹添加一个实体类Users,继承BaseModel,即拥有BaseModel的主键 using System; na ...
随机推荐
- 【UI测试】--规范性
- 提升HTML5的性能体验系列之四 使用原生UI
原生UI的设计目的 HTML和css有一个优势就是灵活的样式设计.在大多数情况下,我们都应该使用HTML+css来负责UI.但是有些情况下,我们发现HTML+css的UI不满足需求.1. 绝对置顶HT ...
- Oracle安装配置
很久没有使用Oracle了,一直做产品使用Mysql,前段时间使用Oracle的一些新经验,占位. 需要整理下....
- python之排列组合测试
# test permutations and combinations import itertools as it for i in it.combinations('abcd',2): prin ...
- JS closure
闭包的概念 闭包,不同于一般的函数,它允许一个函数在立即词法作用域外调用时,仍可访问非本地变量. --维基百科 闭包就是能够读取其他函数内部变量的函数. --阮一峰 由于在Javascript语言中, ...
- Windows-universal-samples学习笔记系列四:Data
Data Blobs Compression Content indexer Form validation (HTML) IndexedDB Logging Serializing and dese ...
- 使用policheck 检测
Policheck is a profing and testing tool for sensitive terminology and helps in ensuring thattrustwor ...
- Java中TreeMap的基本操作
TreeSet有四种种构造函数可以初始化 在代码中主要列出了常用的三种: 构造方法摘要 TreeSet() 构造一个新的空 set,该 set 根据其元素的自然顺序进行排序. Tr ...
- BP神经网络的数学常识
输入数据X1-Xn. 输入层和隐层之间的权Wji 隐层的输入数据为:∑iwjixi 隐层的输出数据为:yj = f(∑iwjixi).其中f(x)= 隐层的输入数据为:∑jwkjyj 隐层的输出数据为 ...
- markdown中自己偶尔需要的小技巧
慢慢积累,需要时搜索,并记录与此. 1.写文章时,由于markdown不负责首行缩进,所以“空格”需要特殊的方法去实现,最简单方便的是--输入全角空格(切换全角输入,点空格) 2.markdown中注 ...