【问题标题】:TableServiceEntity Subclass with one Property to be Serialized具有一个要序列化的属性的 TableServiceEntity 子类
【发布时间】:2014-07-19 00:55:23
【问题描述】:

您好,我正在使用 C# 设计一个名为 Account 的类,它继承自 TableServiceEntity,因此我可以轻松地将 Account 存储到 Azure 表存储中的 Account Table 中。

我希望 Account 类具有以下内容:

public Account : TableServiceEntity {
      // Constructor
      public Account() { }

      // Properties
      public string Name {get; set;}
      public List<string> FriendsList{get;set;}
}

对于存储,我有以下内容:

  TableServiceContext.AddObject(AccountTableName, newAccount);
  TableServiceContext.SaveChanges();

我的问题:

  1. 有没有一种方法可以序列化 FriendsList 并将其以 JSON 格式存储在表中,而无需再创建一个像 FriendsListSerialized 这样的字符串属性?通过属性或其他机制? 我更喜欢将 Name 存储为它自己的属性,所以我不想将整个对象序列化为一个字符串。

  2. 你可以只在一个属性上使用 Newtonsoft.JsonConvert.SerializeObject 吗?

  3. 最好的方法是什么? :)

谢谢!

【问题讨论】:

    标签: c# asp.net-mvc-4 serialization json.net azure-table-storage


    【解决方案1】:

    我做了一些研究,最终发现 TableServiceEntity 是有限的,不能覆盖 writeEntity 和 readEntity 方法。但是,如果创建一个继承自 TableEntity 类的类,则可以非常灵活地修改 writeEntity 和 readEntity 方法。具体来说,可以 JSON 序列化一个列表(或任何对象),然后将其存储到表存储中。将继承从 TableSerivceEntity 更改为 TableEntity 会稍微改变您的存储方法。它实际上比我想象的要容易。这是一个非常有用的页面。 http://gauravmantri.com/2012/11/17/storage-client-library-2-0-migrating-table-storage-code/ 希望这可以帮助人们像我一样长期反对使用 TableSerivceEntity。

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      相关资源
      最近更新 更多