Avoid attempting to fetch a non-managed RealmLive instance from the realm backing

For compatibility reasons, we quite often convert completely unmanaged
instances to `ILive`s so they fit the required parameters of a property
or method call. This ensures such cases will not cause any issues when
trying to interact with the underlying data.

Originally I had this allowing write operations, but that seems a bit
unsafe (when performing a write one would assume that the underlying
data is being persisted, whereas in this case it is not). We can change
this if the requirements change in the future, but I think throwing is
the safest bet for now.
This commit is contained in:
Dean Herbert
2021-11-26 14:39:35 +09:00
parent 3bc8f21935
commit 40d1b97af1
4 changed files with 41 additions and 4 deletions

View File

@ -31,6 +31,11 @@ namespace osu.Game.Database
/// <param name="perform">The action to perform.</param>
void PerformWrite(Action<T> perform);
/// <summary>
/// Whether this instance is tracking data which is managed by the database backing.
/// </summary>
bool IsManaged { get; }
/// <summary>
/// Resolve the value of this instance on the current thread's context.
/// </summary>