У меня есть коллекция объектов Realm, и я хочу изменить для них одно свойство bool. Я открываю транзакцию, а затем перебираю элементы и изменяю это свойство. Я продолжаю получать сообщение «Невозможно изменить управляемые объекты вне транзакции записи». когда я наиболее вызывающе модифицирую их внутри транзакции. Что я делаю неправильно?
private async Task SyncPlayersToTeams()
{
try
{
var collection = await GetNonSynchronizedPlayersToTeams().ConfigureAwait(false);
var list = new List<PlayerToTeamAssociationParse>();
foreach (var item in collection)
{
list.Add(item.Convert());
}
await ParseObject.SaveAllAsync<PlayerToTeamAssociationParse>(list);
var realm = Realm.GetInstance();
using (var trans = realm.BeginWrite())
{
foreach (var item in collection)
{
item.IsSynced = true;
}
trans.Commit();
}
}
catch (Exception ex)
{
//LogError(ex);
System.Diagnostics.Debug.WriteLine(ex);
}
}
public class PlayerToTeamAssociationRealm : RealmObject
{
public PlayerToTeamAssociationRealm()
{
Id = Guid.NewGuid().ToString();
}
[PrimaryKey]
public string Id { get; set; }
public string ParseObjectId { get; set; }
public bool IsSynced { get; set; }
public string PlayerId { get; set; }
public string TeamId { get; set; }
//public IList<TeamDetailRealm> Teams { get; }
public PlayerToTeamAssociationParse ToWebModel()
{
return this.Convert();
}
}