你好,我正在使用c#设计一个名为Account的类,它继承自TableServiceEntity,因此我可以轻松地将Account存储到Azure表存储中的Account表中。
我希望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();
我的问题:
是否有一种方法来序列化FriendsList并将其存储在JSON格式的表中,而无需创建一个像FriendsListSerialized这样的字符串属性?通过属性还是其他机制?我更喜欢将Name存储为它自己的属性,所以我不想将整个对象序列化为一个字符串。
你可以使用Newtonsoft.JsonConvert.SerializeObject只对一个属性吗?
这样做的最佳方法是什么?:)
谢谢!
我做了一些研究,最终发现TableServiceEntity是有限的,不能重写writeEntity和readEntity方法。但是,如果创建了一个继承自TableEntity类的类,那么就可以非常灵活地修改writeEntity和readEntity方法。具体来说,可以用JSON序列化列表(或任何对象),然后将其存储到Table Storage中。将继承从TableSerivceEntity更改为TableEntity稍微改变了您的存储方法。其实比我想象的要简单。这是一个非常有用的页面。http://gauravmantri.com/2012/11/17/storage-client-library-2-0-migrating-table-storage-code/希望这能帮助人们避免像我一样长时间使用TableSerivceEntity。