Skip to content

Commit b2c1247

Browse files
committed
升级efcore5和efcore3并且完善自动追踪文档发布x.3.0.00版本
1 parent 017b3e0 commit b2c1247

File tree

6 files changed

+34
-36
lines changed

6 files changed

+34
-36
lines changed

README.md

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ Oracle | 支持 | 未测试
3333
- [默认路由](#默认路由)
3434
- [Api](#Api)
3535
- [高级配置](#高级配置)
36+
- [自动追踪](#自动追踪)
3637
- [手动路由](#手动路由)
3738
- [自动建表](#自动建表)
3839
- [事务](#事务)
@@ -60,14 +61,14 @@ Oracle | 支持 | 未测试
6061

6162
本库的几个简单的核心概念:
6263

63-
### 分库
64+
### 分库概念
6465
- [DataSourceName]
6566
数据源名称用来将对象路由到具体的数据源
6667
- [IVirtualDataSource]
6768
虚拟数据源 [IVirtualDataSource](https://github.com/xuejmnet/sharding-core/blob/main/src/ShardingCore/Core/VirtualDatabase/VirtualDataSources/IVirtualDataSource.cs)
6869
- [IVirtualDataSourceRoute]
6970
分库路由 [IVirtualDataSourceRoute](https://github.com/xuejmnet/sharding-core/blob/main/src/ShardingCore/Core/VirtualRoutes/DataSourceRoutes/IVirtualDataSourceRoute.cs)
70-
### 分表
71+
### 分表概念
7172
- [Tail]
7273
尾巴、后缀物理表的后缀
7374
- [TailPrefix]
@@ -576,6 +577,25 @@ var list = new List<SysUserMod>();
576577
}
577578

578579
```
580+
## 自动追踪
581+
默认shardingcore不支持自动追踪,并且也不建议使用自动追踪,如果你有需要shardingcore也默认提供了自动追踪功能
582+
有两点需要注意
583+
目前仅支持单主键对象
584+
1.shardingcore仅支持dbcontextmodel的类型的整个查询匿名类型不支持联级查询不支持
585+
2.shardingcore的单个查询依然走数据库不走缓存如果查询出来的结果缓存里面有就返回缓存里面的而不是数据库的
586+
3.tolist等操作会查询数据库返回的时候判断是否已经追踪如果已经追踪则返回缓存里已经追踪了的值
587+
4.支持 `first`,`firstordefault`,`last`,`lastordefault`,`single`,`singleordefault`
588+
如何开启
589+
```c#
590+
services.AddShardingDbContext<DefaultShardingDbContext, DefaultTableDbContext>(o =>o.UseSqlServer("..."))
591+
.Begin(o => {
592+
o.CreateShardingTableOnStart = true;
593+
o.EnsureCreatedWithOutShardingTable = true;
594+
//autotrack support asnotracking astracking QueryTrackingBehavior.TrackAll
595+
o.AutoTrackEntity = true;
596+
})
597+
```
598+
579599
## 手动路由
580600
```c#
581601
ctor inject IShardingRouteManager shardingRouteManager

nuget-publish.bat

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
:start
22
::定义版本
3-
set EFCORE2=2.3.0.00-pre1
4-
set EFCORE3=3.3.0.00-pre1
5-
set EFCORE5=5.3.0.00-pre1
3+
set EFCORE2=2.3.0.00
4+
set EFCORE3=3.3.0.00
5+
set EFCORE5=5.3.0.00
66

77
::删除所有bin与obj下的文件
88
@echo off

samples/Sample.BulkConsole/Program.cs

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Diagnostics;
4-
using System.Linq;
5-
using EFCore.BulkExtensions;
1+
using EFCore.BulkExtensions;
62
using Microsoft.EntityFrameworkCore;
73
using Microsoft.Extensions.DependencyInjection;
84
using Microsoft.Extensions.Logging;
95
using Sample.BulkConsole.DbContexts;
106
using Sample.BulkConsole.Entities;
117
using ShardingCore;
12-
using ShardingCore.Core.PhysicTables;
13-
using ShardingCore.Core.VirtualDatabase.VirtualTables;
148
using ShardingCore.Extensions;
15-
using ShardingCore.TableCreator;
9+
using System;
10+
using System.Collections.Generic;
11+
using System.Diagnostics;
12+
using System.Linq;
1613

1714
namespace Sample.BulkConsole
1815
{
@@ -45,24 +42,6 @@ static void Main(string[] args)
4542
{
4643
var myShardingDbContext = serviceScope.ServiceProvider.GetService<MyShardingDbContext>();
4744

48-
var virtualTableManager = serviceScope.ServiceProvider.GetService<IVirtualTableManager<MyShardingDbContext>>();
49-
var virtualTable = virtualTableManager.GetVirtualTable(typeof(Order));
50-
if (virtualTable == null)
51-
{
52-
return;
53-
}
54-
var now1 = DateTime.Now.Date.AddDays(2);
55-
var tail = virtualTable.GetVirtualRoute().ShardingKeyToTail(now1);
56-
try
57-
{
58-
virtualTableManager.AddPhysicTable(virtualTable, new DefaultPhysicTable(virtualTable, tail));
59-
var tableCreator = serviceProvider.GetService< IShardingTableCreator < MyShardingDbContext >> ();
60-
tableCreator.CreateTable("ds0", typeof(Order), tail);
61-
}
62-
catch (Exception e)
63-
{
64-
//ignore
65-
}
6645
if (!myShardingDbContext.Set<Order>().Any())
6746
{
6847
var begin = DateTime.Now.Date.AddDays(-3);

samples/Sample.SqlServer/Startup.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ public void ConfigureServices(IServiceCollection services)
3838
o.CreateShardingTableOnStart = true;
3939
o.EnsureCreatedWithOutShardingTable = true;
4040
o.AutoTrackEntity = true;
41-
//o.AutoTrackEntity = true;
4241
})
4342
.AddShardingQuery((conStr, builder) => builder.UseSqlServer(conStr).UseLoggerFactory(efLogger)
4443
.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking))

src/ShardingCore/ShardingCore.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
</PropertyGroup>
1313

1414
<ItemGroup>
15-
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.9" />
16-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.9" />
15+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.10" />
16+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="5.0.10" />
1717
</ItemGroup>
1818
</Project>

src3x/ShardingCore.3x/ShardingCore.3x.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
<Compile Remove="..\..\src\ShardingCore\ShardingTableConfig.cs" />
2929
</ItemGroup>
3030
<ItemGroup>
31-
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.18" />
32-
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.18" />
31+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.19" />
32+
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.1.19" />
3333
</ItemGroup>
3434

3535
</Project>

0 commit comments

Comments
 (0)