Abp中集成TableStorage

发布时间 2023-12-26 10:05:29作者: Kelvin's
  1. 添加Nuget包Azure.Data.Tables
    image

  2. appsettings.json中配置连接字符串
    image

  3. 在Module中获取连接字符串,并注册服务
    image

private void ConfigurationTableStorage(ServiceConfigurationContext context)
        {
            var connectionString = context.Services.GetConfiguration()["TABLE_CONNECTION_STRING:Default"];
            TableServiceClient tableServiceClient = new TableServiceClient(connectionString);
            context.Services.AddSingleton(tableServiceClient);
        }

context.Services.AddSingleton 方法用于将一个服务类型注册为单例模式,以确保在整个应用程序生命周期内只创建一个实例。每次需要 TableServiceClient 的实例时,都会返回同一个实例。

  1. 在Service中注入TableServiceClient
public class TableStorageAppService : TableStorageManagementAppService, ITableStorageAppService
    {
        private readonly TableServiceClient tableClient;

        public TableStorageAppService(TableServiceClient tableClient)
        {
            this.tableClient = tableClient;
        }

        public async Task TestGetStorageData()
        {

            var table = tableClient.GetTableClient("realtime");
            var result = await table.GetEntityAsync<TestObj>("TestPar", "TestRow");

            Logger.LogError($"==================>{JsonConvert.SerializeObject(result)}");
        }
    }

运行结果

[09:26:46 ERR] ==================>{"Value":{"PartitionKey":"TestPar","RowKey":"TestRow","Timestamp":"2023-12-25T08:56:36.483685+00:00","TestColumn":"123456","ETag":{}},"HasValue":true}