我正在使用Azure移動服務.NET後端和Xamarin.Forms,並且遇到了使用int標識ID列的問題。在脫機場景中,我可以成功將記錄添加到數據庫,但是身份標識的CustomerId列保持爲0.一旦聯機,當我同步時,該值由SQL Server設置並填充到移動設備上。Azure移動服務標識列在離線時未分配
由於ID是必需的,因爲我還需要在另一個表中創建相關數據,問題是,在與服務器同步之前,如何獲取/設置實體的ID?我無法手動設置它,因爲它可能會與另一個客戶衝突。我起訴現有的SQL數據庫,所以寧願不必完全改變方案來改變ID來使用字符串或GUID。
public class Customer
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CustomerId { get; set; }
public string Name { get; set; }
....
}
public async Task SaveCustomer(Customer item) {
await CustomerTable.InsertAsync (item);
}
這將需要一些自定義代碼,至少有一些推後將取代您的相關表中的佔位符id(客戶端只有列或您的實體有一個Azure Id列和您的普通實體ID列。支持關係和服務器擁有的Ifs(需要id突變)目前並不幸運地構建 – phillipv