Я использую Azure Mobile App SDK, и у меня есть 4 таблицы Учетная запись, личная, Трудовая и Подписка.
Я оставлю здесь код моих моделей:
public class Account : TableData
{
[JsonProperty(PropertyName ="userid")]
public string UserId { get; set; }
[JsonProperty(PropertyName = "personalid")]
public string PersonalId { get; set; }
[JsonProperty(PropertyName = "subscriptionid")]
public string SubscriptionId { get; set; }
[JsonProperty(PropertyName = "subscriptionappleid")]
public string SubscriptionAppleId { get; set; }
[JsonProperty(PropertyName = "subscriptiongoogleid")]
public string SubscriptionGoogleId { get; set; }
[JsonProperty(PropertyName = "laborid")]
public string LaborId { get; set; }
public override bool Equals(object obj)
{
return Equals<Account>(obj, this);
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
}
public class Personal : TableData
{
[Required]
[StringLength(50)]
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
[Required]
[StringLength(50)]
[JsonProperty(PropertyName = "dadlastname")]
public string DadLastName { get; set; }
[Required]
[StringLength(50)]
[JsonProperty(PropertyName = "momlastname")]
public string MomLastName { get; set; }
[Required]
[StringLength(50)]
[JsonProperty(PropertyName = "email")]
public string Email { get; set; }
[Required]
[JsonProperty(PropertyName = "sex")]
public Gender Sex { get; set; }
[Required]
[Column(TypeName = "datetime2")]
[JsonProperty(PropertyName = "birthdate")]
public DateTime? BirthDate { get; set; }
public override bool Equals(object obj)
{
return Equals<Personal>(obj, this);
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
}
public class Subscription : TableData
{
[Required]
[JsonProperty(PropertyName = "subscriptiontype")]
public SubscriptionType SubscriptionType { get; set; }
[Required]
[Column(TypeName = "datetime2")]
[JsonProperty(PropertyName = "subscriptiondate")]
public DateTime? SubscriptionDate { get; set; }
[Required]
[Column(TypeName = "datetime2")]
[JsonProperty(PropertyName = "expirationdate")]
public DateTime? ExpirationDate { get; set; }
[Required]
[JsonProperty(PropertyName = "standardsubscriptiontype")]
public SubscriptionType StandardSubscriptionType { get; set; }
[Required]
[Column(TypeName = "datetime2")]
[JsonProperty(PropertyName = "standardsubscriptiondate")]
public DateTime? StandardSubscriptionDate { get; set; }
[Required]
[Column(TypeName = "datetime2")]
[JsonProperty(PropertyName = "standardexpirationdate")]
public DateTime? StandardExpirationDate { get; set; }
public override bool Equals(object obj)
{
return Equals<Subscription>(obj, this);
}
public override int GetHashCode()
{
return Id.GetHashCode();
}
}
теперь, как вы можете видеть, модель учетной записи имеет Foreing Keys для Личного, Трудового и Подписного.
всякий раз, когда я изменяю личные, трудовые или надбавки, я обновляю свою таблицу, и я вижу в своем облаке, что информация была изменена, например.
в личной модели. Я изменяю дату своего рождения с 5 октября 1981 г. по 6 октября 1981 г., и она успешно обновляется, но если я закрываю свое приложение и через 30 или 20 минут я снова открываю приложение, как только Я вхожу в систему, используя метод входа в систему, который не имеет ничего общего с Sql Azure, информация о базе данных возвращается к предыдущим значениям, и мне нужно подождать минут 20 или 30, чтобы это произошло, я закрываю свое приложение и сразу же заново открываю его базу данных или запись не затрагивается.
Теперь это происходит только с таблицей, о которой я упоминал ранее. Если я сделаю редакцию для других таблиц, они не будут затронуты ситуацией, о которой я упоминал ранее.
Я что-то не так делаю ??? Этого раньше не было, я пытался отключить автономную поддержку для этих таблиц, думая, что это может быть проблемой с sqlLite, но проблема по-прежнему преобладает.
Я игнорирую причину, почему это происходит.
Надеюсь, вы поможете мне с некоторыми идеями, я понятия не имею об этом.
Должен ли я избавиться от Foreing Keys ??? Должен ли я удалить всю запись и создать новую, переназначить новый PersonalId или LaborId для модели учетной записи ??? как обходной путь.