共计 5 篇文章

Abp 源码分析:七、工作单元的实现

0.简介 Abp 框架在其内部实现了仓储模式,并且支持 EF Core 与 Dapper 来进行数据库连接与管理,你可以很方便地通过注入通用仓储来操作你的数据,而不需要你自己来为每一个实体定义单独的仓储的实现,通用仓储包含了常用的 CRUD 接口和一些常用方法。 例如: public class TestAppService : ITransientDependency { private readonly IRepository<TestTable> ...

Abp 源码分析:六、工作单元的实现

0.简介 在 Abp 框架内部实现了工作单元,在这里讲解一下,什么是工作单元? Unit Of Work(工作单元)模式用来维护一个由已经被业务事物修改(增加、删除或更新)的业务对象组成的列表。Unit  Of Work模式负责协调这些修改的持久化工作以及所有标记的并发问题。在数据访问层中采用Unit Of Work模式带来的好处是能够确保数据完整性。如果在持久化一系列业务对象(他们属于同一个事物)的过程中出现问题,那么应该将所有的修改回滚,以确保数据始终处于有效状态。 ...

EntityFrameworkCore Code First 当中批量自定义列名

在使用.NET CORE 进行 Web 开发的时候会考虑到使用不同数据库的情况,并且在每种数据库建立表结构的时候会采用不同的命名规则。之前的解决方法是使用 [ColumnAttribute] 或者 [TableAttribute] 这种特性来显式标注不同的列名。 例如: [Table("bas_stock_address")] public class BasStockAddress : FullAuditedEntity<int, User& ...

ABP Code First 无法进行数据库迁移问题

最近使用 ABP 框架进行数据库迁移的时候,总是在 PowerShell 当中执行 Update-Database 命令的时候出现以下情况: 总是提示项目找不到 EntityFramework 框架,最后在这里找到了答案,ef core 当中需要在你使用了 EntityFramework 框架的目录下,使用命令行工具执行以下命令即可: dotnet ef database update ...

DbSet 两种 Where 查询的性能问题。

说白了 DBSet.Where() 有两个重载,一个是IQueryable还有一个是IEnumerable,前者则是会延迟执行,而后者则是将整个数据集加载出来之后再进行Where查询。 IQueryable这个查询对象接收的是Expression<Func<T,bool>>,也就是一个表达式树,他将会把查询条件解析成SQL,在数据源提供器里面执行查询。 而List是一个集合,他接收的是一个Func<T,bool>,也就是一个查询委托,他则是将整个DBSet加载出来放在内存之后, ...