using Microsoft.EntityFrameworkCore; using Sample.SqlServerShardingAll.Entities; using ShardingCore.Core.VirtualRoutes.TableRoutes.RouteTails.Abstractions; using ShardingCore.Sharding; using ShardingCore.Sharding.Abstractions; namespace Sample.SqlServerShardingAll { public class MyDbContext:AbstractShardingDbContext,IShardingTableDbContext { public MyDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity(entity => { entity.HasKey(o => o.Id); entity.Property(o => o.Id).IsRequired().IsUnicode(false).HasMaxLength(50); entity.Property(o=>o.Payer).IsRequired().IsUnicode(false).HasMaxLength(50); entity.Property(o => o.Area).IsRequired().IsUnicode(false).HasMaxLength(50); entity.Property(o => o.OrderStatus).HasConversion(); entity.ToTable(nameof(Order)); }); modelBuilder.Entity(entity => { entity.HasKey(o => o.Id); entity.Property(o => o.Id).IsRequired().IsUnicode(false).HasMaxLength(50); entity.Property(o=>o.Name).IsRequired().IsUnicode(false).HasMaxLength(50); entity.Property(o=>o.Area).IsRequired().IsUnicode(false).HasMaxLength(50); entity.ToTable(nameof(SysUser)); }); modelBuilder.Entity(entity => { entity.HasKey(o => o.Id); entity.Property(o => o.Id).IsRequired().IsUnicode(false).HasMaxLength(50); entity.Property(o=>o.Name).IsRequired().IsUnicode(false).HasMaxLength(50); entity.Property(o=>o.Area).IsRequired().IsUnicode(false).HasMaxLength(50); entity.ToTable(nameof(NoShardingTest)); }); } public IRouteTail RouteTail { get; set; } } }