using JiShe.CollectBus.IotSystems.Devices; using JiShe.CollectBus.IotSystems.MessageIssueds; using JiShe.CollectBus.IotSystems.MessageReceiveds; using JiShe.CollectBus.IotSystems.MeterReadingRecords; using JiShe.CollectBus.IotSystems.Protocols; using MongoDB.Bson; using MongoDB.Driver; using System; using System.Collections.Generic; using Volo.Abp.Data; using Volo.Abp.MongoDB; using Volo.Abp.MultiTenancy; namespace JiShe.CollectBus.MongoDB; [IgnoreMultiTenancy] [ConnectionStringName(CollectBusDbProperties.MongoDbConnectionStringName)] public class CollectBusMongoDbContext : AbpMongoDbContext, ICollectBusMongoDbContext { /* Add mongo collections here. Example: * public IMongoCollection Questions => Collection(); */ public IMongoCollection MessageReceiveds => Collection(); public IMongoCollection MessageReceivedLogins => Collection(); public IMongoCollection MessageReceivedHeartbeats => Collection(); public IMongoCollection Devices => Collection(); public IMongoCollection ProtocolInfos => Collection(); /// /// 抄表记录,默认按天分表 /// public IMongoCollection MeterReadingRecordInfo => Database.GetCollection(DateTime.Now.GetCollectionName()); protected override void CreateModel(IMongoModelBuilder modelBuilder) { base.CreateModel(modelBuilder); modelBuilder.Entity(builder => { // 创建索引 builder.ConfigureIndexes(index => { List> createIndexModels = new List>(); createIndexModels.Add(new CreateIndexModel( Builders.IndexKeys.Ascending(nameof(MeterReadingRecords)), new CreateIndexOptions { Unique = true } )); index.CreateMany(createIndexModels); }); }); modelBuilder.ConfigureCollectBus(); } }