Azure service fabric 如何从IEnumerable上载IReliable字典中的数据<;T>;

Azure service fabric 如何从IEnumerable上载IReliable字典中的数据<;T>;,azure-service-fabric,service-fabric-stateful,Azure Service Fabric,Service Fabric Stateful,我正在从Azure表存储中检索数据并将其存储在IEnumerable中,但我不知道如何将此IEnumerable转换为IReliableDictionary,以便将此存储数据保存到有状态服务的状态管理器中 var storesRepo = await StateManager.GetOrAddAsync<IReliableDictionary<long, Store>>(""); 其中key是商店名称。 创建一个字典,枚举集合中的所有存储,在一个目录中逐个添加它们 确

我正在从Azure表存储中检索数据并将其存储在IEnumerable中,但我不知道如何将此
IEnumerable
转换为
IReliableDictionary
,以便将此存储数据保存到有状态服务的状态管理器中

var storesRepo = await StateManager.GetOrAddAsync<IReliableDictionary<long, Store>>(""); 
其中key是商店名称。

  • 创建一个字典,枚举集合中的所有存储,在一个目录中逐个添加它们
  • 确保存储集不会变得太大,以避免长时间运行的事务和锁
  • 一定要先考虑一下
  • 添加重试支持
  • 应用来自的最佳实践
元代码如下:
var storesRepo=await StateManager.GetOrAddAsync(“someName”);
IEnumerable stores=等待GetFromTableStorage();
使用(ITransaction tx=base.StateManager.CreateTransaction())
{
foreach(存储在存储中的var存储)
{
wait storesRepo.AddAsync(tx、store.Name、store、cancellationToken);
}
wait tx.CommitAsync();
}

Hi there,not About无法为我们提供任何关于到底出了什么问题的线索(例如,您是否有任何错误?),您能告诉我们您正在努力实现什么吗?一些代码也会有帮助。嗨,我正在从Azure表存储中检索一些数据作为IEnumerable。但我不知道如何将这个IEnumerable转换成IReliableDictionary,以便将这个存储数据保存到有状态服务的状态管理器中。var storesRepo=await StateManager.GetOrAddAsync(“”);那么我如何才能将这个IEnumerable插入StoreRepo请通过下次编辑将代码添加到问题中,使其可读性提高很多倍。这一次我这么做了。在您的设置中,ReliableDictionary的唯一键是什么?这是
存储的属性吗?类
存储
的外观如何?
    public class Store : TableEntity
    {
    public string Name { get; set; }
    public double Longitude { get; set; }
    public double Latitude { get; set; }
    public string Address { get; set; }
    public double Distance { get; set; }
    public string Email { get; set; }
    public string City { get; set; }
    }


    ReliableDictionary<string, Store>
var storesRepo = await StateManager.GetOrAddAsync<IReliableDictionary<string, Store>>("someName");    
IEnumerable<Store> stores = await GetFromTableStorage();
using (ITransaction tx = base.StateManager.CreateTransaction()) 
{
   foreach(var store in stores)
   {
      await storesRepo.AddAsync(tx, store.Name, store, cancellationToken);
   }
   await tx.CommitAsync();
}