Я использую брандмауэр Azure Mobile Services .NET с Xamarin.Forms, и у меня возникла проблема с использованием столбцов идентификаторов ID. В автономном сценарии я могу успешно добавить запись в БД, но столбец CustomerId, который является идентификатором, остается равным 0. После того, как он был в сети, когда я синхронизирую, значение устанавливается сервером SQL и заполняется на мобильном устройстве.Локальная идентификационная марка Azure Mobile Services не назначена, а Offline
Поскольку идентификатор требуется, так как мне также необходимо создать связанные данные в другой таблице, вопрос в том, как я могу получить/установить идентификатор для объекта перед его синхронизацией с сервером? Я не могу установить его вручную, поскольку он может столкнуться с другим клиентом. Я подаю иск в существующую базу данных SQL, поэтому предпочел бы не полностью менять схему, чтобы изменить идентификатор, чтобы использовать строки или 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);
}
Для этого потребуется какой-то пользовательский код, по крайней мере, какой-либо пост-пост, который заменит идентификатор заполнителя в вашей связанной таблице (либо столбец только на стороне клиента, либо ваши сущности имеют столбец идентификатора Azure и ваш обычный столбец идентификатора объекта. поддержка отношений и серверов, принадлежащих Ifs (требующая идентификационной мутации), в настоящее время не построена. – phillipv