FreeSql (一)入门

FreeSql 是一个功能强大的对象关系映射程序(O/RM),支持 .NETCore 2.1+ 或 .NETFramework 4.5+(QQ群:4336577)

FreeSql采用MIT开源协议托管于 github。

特性

  • [x] 支持 CodeFirst 迁移;
  • [x] 支持 DbFirst 从数据库导入实体类,支持三种模板生成器;
  • [x] 采用 ExpressionTree 高性能读取数据;
  • [x] 支持深入的类型映射,比如pgsql的数组类型,堪称匠心制作;
  • [x] 支持丰富的表达式函数;
  • [x] 支持导航属性查询,和延时加载;
  • [x] 支持同步/异步数据库操作方法,丰富多彩的链式查询方法;
  • [x] 支持读写分离、分表分库,租户设计;
  • [x] 支持多种数据库,MySql/SqlServer/PostgreSQL/Oracle/Sqlite;

模型

使用模型执行数据访问,模型由实体类表示数据库表或视图,用于查询和保存数据。

可从现有数据库生成实体模型,FreeSql 提供 IDbFirst 接口实现生生成实体模型。

或者手动创建模型,基于模型创建或修改数据库,提供 ICodeFirst 同步结构的 API(甚至可以做到开发阶段自动同步)。

using FreeSql.DataAnnotations;
using System;public class Blog
{[Column(IsIdentity = true, IsPrimary = true)]public int BlogId { get; set; }public string Url { get; set; }public int Rating { get; set; }
}

声明

dotnet add packages FreeSql.Provider.Sqlite

var connstr = @"Data Source=|DataDirectory|\db1.db;Attachs=db2.db;Pooling=true;Max Pool Size=10";IFreeSql fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.Sqlite, connstr).UseAutoSyncStructure(true) //自动同步实体结构到数据库.Build();

注意: IFreeSql 在项目中应以单例声明,而不是在每次使用的时候创建。

迁移

程序运行中FreeSql会检查AutoSyncStructure参数,以此条件判断是否对比实体与数据库结构之间的变化,达到自动迁移的目的。

查询

var blogs = fsql.Select<Blog>().Where(b => b.Rating > 3).OrderBy(b => b.Url).Skip(100).Limit(10) //第100行-110行的记录.ToList();

插入

var blog = new Blog { Url = "http://sample.com" };
blog.BlogId = (int)fsql.Insert<Blog>().AppendData(blog).ExecuteIdentity();

更新

fsql.Update<Blog>().Set(b => b.Url, "http://sample2222.com").Where(b => b.Url == "http://sample.com").ExecuteAffrows();

删除

fsql.Delete<Blog>().Where(b => b.Url == "http://sample.com").ExecuteAffrows();

系列文章导航

  • (一)入门

  • (二)自动迁移实体

  • (三)实体特性

  • (四)实体特性 Fluent Api

  • (五)插入数据

  • (六)批量插入数据

  • (七)插入数据时忽略列

  • (八)插入数据时指定列

  • (九)删除数据

  • (十)更新数据

  • (十一)更新数据 Where

  • (十二)更新数据时指定列

  • (十三)更新数据时忽略列

  • (十四)批量更新数据

  • (十五)查询数据

  • (十六)分页查询

  • (十七)联表查询

  • (十八)导航属性

  • (十九)多表查询

  • (二十)多表查询 WhereCascade

  • (二十一)查询返回数据

  • (二十二)Dto 映射查询

  • (二十三)分组、聚合

  • (二十四)Linq To Sql 语法使用介绍

  • (二十五)延时加载

  • (二十六)贪婪加载 Include、IncludeMany、Dto、ToList

  • (二十七)将已写好的 SQL 语句,与实体类映射进行二次查询

  • (二十八)事务

  • (二十九)Lambda 表达式

  • (三十)读写分离

  • (三十一)分区分表

  • (三十二)Aop

  • (三十三)CodeFirst 类型映射

  • (三十四)CodeFirst 迁移说明

  • (三十五)CodeFirst 自定义特性

转载于:https://www.cnblogs.com/FreeSql/p/11531300.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决:Caused by: java.lang.UnsupportedOperationException: null

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.报错&#xff1a; 严重: Servlet.service() for servlet [lbd-institution] in context with path [/ins] threw exception [Reques…

2014科目三大路考各项目操作要求

机动车驾驶员考试科目三大路考到底都考哪些项目呢&#xff1f;每个项目的具体考试要求分别是什么&#xff1f;下面就跟着小编一起来了解一下吧&#xff01; 新驾考科目三考试内容及变化&#xff1a; A、上车准备;B、起步;C、直线行驶; D、加减挡位操作;E、变更车道; F、靠边停…

FreeSql (二)自动迁移实体

FreeSql 支持 CodeFirst 迁移结构至数据库&#xff0c;这应该是(O/RM)必须标配的一个功能。 与其他(O/RM)不同FreeSql支持更多的数据库特性&#xff0c;而不只是支持基础的数据类型&#xff0c;这既是优点也是缺点&#xff0c;优点是充分利用数据库特性辅助开发&#xff0c;缺点…

IntelliJ IDEA 设置代码检查级别

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 设置代码检查等级   IntelliJ IDEA中最右下角的小按钮可以设置当前编辑文档的代码检查等级&#xff0c;如图   Inspections 为最高等…

科目三路考流程及注意事项

机动车驾驶员考试科目三路考考试流程可分为7个步骤&#xff0c;分别有什么注意事项&#xff0c;下面就让小编给大家介绍下吧&#xff01; 1.上车前&#xff0c;无论你在车辆的什么位置&#xff0c;请务必从车的右侧绕过车头走到驾驶室门前&#xff0c;先观察车前道路上是否有障…

FreeSql (三)实体特性

主键(Primary Key) class Topic {[Column(IsPrimary true)]public int Id { get; set; } } 约定&#xff1a; 当没有指明主键时&#xff0c;命名为 id 的字段将成为主键&#xff1b;&#xff08;不区分大小写&#xff09;当主键是 Guid 类型时&#xff0c;插入时会自动创建&am…

spring 中构造Constructor、@Autowired、@PostConstruct、静态方法的执行顺序 (@PostConstruct 说明)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 关于注解 PostConstruct public interface PostConstructPostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上&#xff…

科目三靠边停车驾驶流程

科目三靠边停车项目考试要求是什么&#xff1f;靠边停车驾驶难不难&#xff1f;有什么驾驶技巧吗&#xff1f; 靠边停车考试项目中规定&#xff0c;车前保险杠离目标前后均不超过1250px&#xff0c;车距目标的横向距离保持在50-2500px之间&#xff0c;同时停车后车要与路边平行…

FreeSql (四)实体特性 Fluent Api

FreeSql 提供使用 Fluent Api&#xff0c; 在外部配置实体的数据库特性&#xff0c;Fluent Api 的方法命名与特性名保持一致&#xff0c;如下&#xff1a; fsql.CodeFirst.ConfigEntity<TestFluenttb1>(a > {a.Name("xxdkdkdk1").SelectFilter("a.Id22…

mybatis3 中 @Provider 的使用方式

若用MyBatis注解方式写sql&#xff0c;又想要XML写法的判断入参拼接条件&#xff0c;可以通过SelectProvider方式实现。 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 新建Provider …

科目三电子路考易错细节总结

小编咨询了多家驾校的教练员&#xff0c;总结了科目三电子路考中&#xff0c;考生犯错率最高的几个细节&#xff0c;下面就一起来看看是哪些吧&#xff0c;希望对还没参加科目三考试的朋友有所帮助。 ●起步前不使用安全带 在等待了约2小时后&#xff0c;考生史某终于坐上了考…

java 查询功能实现的八种方式

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 只是记录一下 1. HQL 2. Mybatis : mapper.xml 中写 sql 。 3. Mybatis : 注解 Select Select("select * from xxx_order wher…

科目三夜考考试内容及过关攻略

驾考科目三夜考&#xff0c;考试内容是什么&#xff1f;夜考到底难不难&#xff1f;具体评判标准是什么&#xff1f;夜考有什么驾驶技巧吗&#xff1f;本文&#xff0c;小编将一一为大家解析&#xff01; ●夜考过关攻略 场外考试的新增内容就是&#xff1a;在夜间和低能见度…

联合索引:创建、删除、查看 (解决报错:Duplicate key name)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 创建联合索引&#xff1a; CREATE INDEX idx_xxx_stitution ON xxx_order (status,institution_code) idx_xxx_stitution &#x…

科目三场外考试易出错的环节

现在很多的城市都已经开始实行电子考试&#xff0c;这使得科目三考试更加公平公正&#xff0c;但还是有考生在考试中忽略了场外易出错的环节导致成绩不合格。●起步前不使用安全带在等待了约2小时后&#xff0c;考生史某终于坐上了考试车。史某很兴奋地调整了座位&#xff0c;观…

FreeSql (八)插入数据时指定列

插入数据时指定列&#xff0c;和忽略列对应&#xff0c;未被指定的列将被忽略。 var connstr "Data Source127.0.0.1;Port3306;User IDroot;Passwordroot;" "Initial Catalogcccddd;Charsetutf8;SslModenone;Max pool size10";IFreeSql fsql new FreeSq…

mybatis 中 Example 的使用 :条件查询、排序、分页(三种分页方式 : RowBounds、PageHelpler 、limit )

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 import tk.mybatis.mapper.entity.Example;import com.github.pagehelper.PageHelper;...Overridepublic List<Repayxxx> listRep…

科目三大路考8个驾驶技巧

驾考科目三考试&#xff0c;大路考的考试内容是什么&#xff0c;有什么考试要点&#xff0c;考试时&#xff0c;有哪些细节要注意&#xff1f;下面&#xff0c;就跟着小编一起来看看吧&#xff01; 科目三大路考驾驶技巧是在实际道路上驾驶机动车进行起步前的准备、起步、通过…

FreeSql (九)删除数据

删除是一个非常危险的操作&#xff0c;FreeSql对删除支持并不强大&#xff0c;仅支持了单表有条件的删除方法。 不想过多的介绍拉长删除数据的系列文章&#xff0c;删除数据的介绍仅此一篇。 若Where条件为空的时候执行方法&#xff0c;FreeSql仅返回0或默认值&#xff0c;不执…

解决: IDEA 代码 commit 后,Local Changes 中代码依旧在,提交失败,报错:is out of date

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 代码提交后 Local Changes 中的代码未消失。查看 Event log 发现提交失败。 如下 红框中位置就是 Event log&#xff0c;或者点击…