欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.netcore-FreeSql的使用-搭建context

程序员文章站 2022-03-20 08:57:32
之前用netcore搭建了一个小项目,数据库操作用的是要手写sql语句的connection和command,一直想调个EFCore或者类似SOA那样的框架 今天看到了DotNet公众号提到的.NET Core新型ORM,于是兴起打算试试如何去使用 其推文转自 cnblogs.com/kellyni ......

之前用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的那个实体,即没有另一个表的数据,如何得到另一个表中想要的数据呢?

 

越努力越幸运,努力需要自制,希望自己能够有更强的自制力!感恩自信自律!