在表實體模型的最例子我看到的是這樣的:Azure Table中的實體模型設計
public class CustomerEntity : TableEntity
{
public CustomerEntity(string lastName, string firstName)
{
this.PartitionKey = lastName;
this.RowKey = firstName;
}
public CustomerEntity() { }
public string Email { get; set; }
public string PhoneNumber { get; set; }
}
我們在這裏看到lastname
,並作爲相應的分區鍵和行鍵firstname
。因此,在保存和檢索實體後,我可以從PartitionKey
和RowKey
屬性中訪問這些信息。但是,如果我想稍後將此模型作爲json發送到客戶端,那麼我認爲TableEntity基類的PartitionKey
和RowKey
不會被序列化。因此,如果我添加LastName
和FirstName
作爲屬性進行建模,則存儲中將發生不必要的數據重複。最好的方式是避免存儲中的數據重複,同時在模型序列化後可以訪問姓氏和名字。
爲什麼你認爲'PartitionKey'和'RowKey'不會被序列化? –
我記得我們使用[DataMember]屬性來控制是否序列化模型屬性,它似乎在web api中是不必要的... – igorGIS
您可能已經考慮過這一點,但通過此設計,您只能擁有一個客戶一樣的名字。例如,如果您有兩個名爲「Chris Williams」的客戶,則由於PartitionKey和RowKey的組合必須是唯一的,因此這將失敗。 – ChrisW