摘要:
合并步骤: 1、进入要合并的分支(如开发分支合并到master,则进入master目录)git checkout mastergit pull 2、查看所有分支是否都pull下来了git branch -a 3、使用merge合并开发分支git merge 分支名 4、查看合并之后的状态git st 阅读全文
摘要:
1、全局查询筛选器:EF Core会自动将这个查询筛选器应用于涉及这个实体类型的所有LINQ查询2、场景:软删除、多租户 阅读全文
摘要:
快照更改跟踪1、如果通过DbContext查询出来的对象只是用来展示不会发生状态改变,则可以使用AsNoTracking()来"禁用跟踪" 2、分别加AsNoTracking()和不加,分别查看一个对象修改后的EntityEntry信息 3、如果查询出来的对象不会被修改、删除等,那么查询是可以AsN 阅读全文
摘要:
快照更改跟踪:首次跟踪一个实体的时候,EFCore会创建这个实体的快照。执行SaveChanges()等方法时,EFCore将会把存储的快照中的值与实体的当前值进行比较。 实体的状态已添加(Added):DbContext正在跟踪此实体,但数据库中尚不存在该实体 未改变(Unchanged):DbC 阅读全文
摘要:
1、申请方式的不同。栈由系统自动分配,而堆是人为申请开辟; 2、申请大小的不同。栈获得的空间较小,而堆获得的空间较大; 3、申请效率的不同。栈由系统自动分配,速度较快,而堆一般速度比较慢; 4、存储内容的不同。栈在函数调用时,函数调用语句的下一条可执行语句的地址第一个进栈,然后函数的各个参数进栈,其 阅读全文
摘要:
方式一:ToListAsync()、ToArrayAsync()。结果集不要太大方式二:await foreach(Book b in ctx.Books.AsAsyncEnumerable())不过,一般没必要这么做 阅读全文
摘要:
对比1、DataReader:分批从数据库服务器读取数据。内存占用小、DB连接占用时间长2、DataTable:把所有数据都一次性从数据库服务器都加载到客户端内存中。内存占用大,节省DB连接 验证IQueryable用什么方式1、用insert into select 多插入一些数据,然后加上Del 阅读全文
摘要:
1、IQueryable只是代表一个"可以放到数据库服务器去执行的查询",它没有立即执行,只是"可以被执行"而已 2、对于IQueryable接口调用非终结方法的时候不会执行查询,而调用终结方法的时候则会立即执行查询 3、终结方法:遍历、ToArray()、ToList()、Min()、Max()、 阅读全文
摘要:
不同的WHERE方法1、对普通集合和DbSet调用的Where方法,虽然用起来一样,但是"转到定义"后看到的是不同的方法2、普通集合的版本(IEnumerable)是在内存中过滤(客户端评估),而IQueryable版本则是把查询操作翻译成SQL语句(服务器端评估) 阅读全文
摘要:
async的方法会被C#编译器编译成一个类,会主要根据await调用进行切分为多个状态,对async方法的调用会被拆分为对MoveNext的调用。用await看似是"等待",经过编译后,其实没有"wait" 阅读全文