FreeSql.DbContext
添加
更新
删除
添加或更新
保存实体的指定 ManyToMany/OneToMany 导航属性(完整对比)
场景:在关闭级联保存功能之后,手工使用本方法
例子:保存商品的 OneToMany 集合属性,SaveMany(goods, "Skus")
当 goods.Skus 为空(非null)时,会删除表中已存在的所有数据
当 goods.Skus 不为空(非null)时,添加/更新后,删除表中不存在 Skus 集合属性的所有记录
实体对象
属性名
附加实体,可用于不查询就更新或删除
附加实体,并且只附加主键值,可用于不更新属性值为null或默认值的字段
实体变化记录
实体变化事件
是否开启一对多,多对多级联保存功能
【一对多】模型下, 保存时可级联保存实体的属性集合。出于使用安全考虑我们没做完整对比,只实现实体属性集合的添加或更新操作,所以不会删除实体属性集合的数据。
完整对比的功能使用起来太危险,试想下面的场景:
- 保存的时候,实体的属性集合是空的,如何操作?记录全部删除?
- 保存的时候,由于数据库中记录非常之多,那么只想保存子表的部分数据,或者只需要添加,如何操作?
【多对多】模型下,我们对中间表的保存是完整对比操作,对外部实体的操作只作新增(注意不会更新)
- 属性集合为空时,删除他们的所有关联数据(中间表)
- 属性集合不为空时,与数据库存在的关联数据(中间表)完全对比,计算出应该删除和添加的记录
使用无参数化设置(对应 IInsert/IUpdate)
实体变化事件
动态Type,在使用 DbSet<object> 后使用本方法,指定实体类型
附加实体,可用于不查询就更新或删除
附加实体,并且只附加主键值,可用于不更新属性值为null或默认值的字段
清空状态数据
根据 lambda 条件删除数据
添加
保存实体的指定 ManyToMany/OneToMany 导航属性(完整对比)
场景:在关闭级联保存功能之后,手工使用本方法
例子:保存商品的 OneToMany 集合属性,SaveMany(goods, "Skus")
当 goods.Skus 为空(非null)时,会删除表中已存在的所有数据
当 goods.Skus 不为空(非null)时,添加/更新后,删除表中不存在 Skus 集合属性的所有记录
实体对象
属性名
更新
删除
根据 lambda 条件删除数据
添加或更新
在工作单元内创建默认仓库类,工作单元下的仓储操作具有事务特点
数据过滤 + 验证
在工作单元内创建联合主键的仓储类,工作单元下的仓储操作具有事务特点
数据过滤 + 验证
在工作单元内创建仓库类,工作单元下的仓储操作具有事务特点
数据过滤 + 验证
分表规则,参数:旧表名;返回:新表名 https://github.com/2881099/FreeSql/wiki/Repository
开启过滤器,若使用 using 则使用完后,恢复为原有状态
过滤器名称
开启所有过滤器,若使用 using 则使用完后,恢复为原有状态
禁用过滤器,若使用 using 则使用完后,恢复为原有状态
禁用所有过滤器,若使用 using 则使用完后,恢复为原有状态
批量注入 Repository,可以参考代码自行调整
动态Type,在使用 Repository<object> 后使用本方法,指定实体类型
分表规则,参数:旧表名;返回:新表名 https://github.com/2881099/FreeSql/wiki/Repository
设置 DbContext 选项
清空状态数据
附加实体,可用于不查询就更新或删除
附加实体,并且只附加主键值,可用于不更新属性值为null或默认值的字段
保存实体的指定 ManyToMany/OneToMany 导航属性(完整对比)
场景:在关闭级联保存功能之后,手工使用本方法
例子:保存商品的 OneToMany 集合属性,SaveMany(goods, "Skus")
当 goods.Skus 为空(非null)时,会删除表中已存在的所有数据
当 goods.Skus 不为空(非null)时,添加/更新后,删除表中不存在 Skus 集合属性的所有记录
实体对象
属性名
开启事务,或者返回已开启的事务
若未开启事务,则开启
是否启用工作单元
禁用工作单元
若已开启事务(已有Insert/Update/Delete操作),调用此方法将发生异常,建议在执行逻辑前调用
开启工作单元
此工作单元内的实体变化跟踪
正在使用中的工作单元(调试)
开启事务后有值,是 UnitOfWork 的唯一标识
格式:yyyyMMdd_HHmmss_种子id
例如:20191121_214504_1
创建普通数据上下文档对象
不跟踪查询的实体数据(在不需要更新其数据时使用),可提长查询性能
设置 DbContext 选项设置
返回默认仓库类
数据过滤 + 验证
返回默认仓库类,适用联合主键的仓储类
数据过滤 + 验证
返回仓库类
数据过滤 + 验证
分表规则,参数:旧表名;返回:新表名 https://github.com/2881099/FreeSql/wiki/Repository
创建基于仓储功能的工作单元,务必使用 using 包含使用