zoukankan      html  css  js  c++  java
  • .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 定义约定的导航对象,会一起查询返回

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

  • 相关阅读:
    【2018 “百度之星”程序设计大赛
    分班级(经典二分)
    【2018 “百度之星”程序设计大赛
    【zznu-夏季队内积分赛3-J】追忆
    常见网络名词解释
    【zznu-夏季队内积分赛3-G】2333
    【zznu-夏季队内积分赛3-F】学无止境
    【zznu-夏季队内积分赛3-I】逛超市
    html/css/javascript练习代码
    花生壳免费域名80端口无法访问问题处理
  • 原文地址:https://www.cnblogs.com/Rombo713/p/10655780.html
Copyright © 2011-2022 走看看