예제 #1
0
        public void SharingWithMulitiTenancy()
        {
            // 这里应该查询01租户内的Album
            var tenantId = _tenantInfoProvider.GetTenantId();

            Console.WriteLine("--------多租户 + 单数据库 --------");
            Console.WriteLine($"TenantId:{tenantId}");
            Console.WriteLine(_mulitiTenancyContext.Database.GetDbConnection().ConnectionString);
            Console.WriteLine(_mulitiTenancyContext.Album.ToQueryString());
            Console.WriteLine(_mulitiTenancyContext.Artist.ToQueryString());
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            modelBuilder.ApplyConfiguration(new ArtistMap());
            modelBuilder.ApplyConfiguration(new AlbumMap());

            var tenantId = _tenantInfoProvider.GetTenantId();

            if (!string.IsNullOrEmpty(tenantId))
            {
                modelBuilder.Entity <Album>().HasQueryFilter(x => x.TenantId == tenantId);
                modelBuilder.Entity <Artist>().HasQueryFilter(x => x.TenantId == tenantId);
            }
        }