61 lines
2.3 KiB
C#
Raw Normal View History

2025-03-14 14:28:04 +08:00
using JiShe.CollectBus.IotSystems.Devices;
2025-03-17 14:23:48 +08:00
using JiShe.CollectBus.IotSystems.MessageIssueds;
2025-03-14 14:28:04 +08:00
using JiShe.CollectBus.IotSystems.MessageReceiveds;
2025-03-18 22:43:24 +08:00
using JiShe.CollectBus.IotSystems.MeterReadingRecords;
2025-03-14 14:28:04 +08:00
using JiShe.CollectBus.IotSystems.Protocols;
2025-03-19 22:52:53 +08:00
using MongoDB.Bson;
2024-12-19 16:07:07 +08:00
using MongoDB.Driver;
2025-03-19 22:52:53 +08:00
using System;
using System.Collections.Generic;
2024-12-19 16:07:07 +08:00
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<Question> Questions => Collection<Question>();
*/
public IMongoCollection<MessageReceived> MessageReceiveds => Collection<MessageReceived>();
public IMongoCollection<MessageReceivedLogin> MessageReceivedLogins => Collection<MessageReceivedLogin>();
public IMongoCollection<MessageReceivedHeartbeat> MessageReceivedHeartbeats => Collection<MessageReceivedHeartbeat>();
public IMongoCollection<Device> Devices => Collection<Device>();
public IMongoCollection<ProtocolInfo> ProtocolInfos => Collection<ProtocolInfo>();
2025-03-19 22:52:53 +08:00
/// <summary>
/// 抄表记录,默认按天分表
/// </summary>
public IMongoCollection<MeterReadingRecords> MeterReadingRecordInfo => Database.GetCollection<MeterReadingRecords>(DateTime.Now.GetCollectionName<MeterReadingRecords>());
2025-03-17 14:23:48 +08:00
2024-12-19 16:07:07 +08:00
protected override void CreateModel(IMongoModelBuilder modelBuilder)
{
base.CreateModel(modelBuilder);
2025-03-19 22:52:53 +08:00
modelBuilder.Entity<MeterReadingRecords>(builder =>
{
// 创建索引
builder.ConfigureIndexes(index =>
{
List<CreateIndexModel<BsonDocument>> createIndexModels = new List<CreateIndexModel<BsonDocument>>();
createIndexModels.Add(new CreateIndexModel<BsonDocument>(
Builders<BsonDocument>.IndexKeys.Ascending(nameof(MeterReadingRecords)),
new CreateIndexOptions
{
Unique = true
}
));
index.CreateMany(createIndexModels);
});
});
2024-12-19 16:07:07 +08:00
modelBuilder.ConfigureCollectBus();
}
}