diff --git a/osu.Game/Database/Live.cs b/osu.Game/Database/Live.cs
index 86cecd51d8..7d607a4637 100644
--- a/osu.Game/Database/Live.cs
+++ b/osu.Game/Database/Live.cs
@@ -17,13 +17,19 @@ namespace osu.Game.Database
/// To consume this as a detached instance, assign to a variable of type . The implicit conversion will handle detaching an instance.
///
/// The underlying object type. Should be a with a primary key provided via .
- public class Live : IEquatable>
+ public class Live : IEquatable>, IHasGuidPrimaryKey
where T : RealmObject, IHasGuidPrimaryKey
{
///
/// The primary key of the object.
///
- public Guid ID { get; }
+ public Guid Guid { get; }
+
+ public string ID
+ {
+ get => Guid.ToString();
+ set => throw new NotImplementedException();
+ }
private readonly ThreadLocal threadValues;
@@ -32,7 +38,7 @@ namespace osu.Game.Database
public Live(T original, IRealmFactory contextFactory)
{
this.contextFactory = contextFactory;
- ID = original.Guid;
+ Guid = original.Guid;
var originalContext = original.Realm;
@@ -43,7 +49,7 @@ namespace osu.Game.Database
if (context == null || originalContext?.IsSameInstance(context) != false)
return original;
- return context.Find(ID);
+ return context.Find(Guid);
});
}
@@ -76,7 +82,7 @@ namespace osu.Game.Database
public static implicit operator Live(T obj) => obj.WrapAsUnmanaged();
- public bool Equals(Live? other) => other != null && other.ID == ID;
+ public bool Equals(Live? other) => other != null && other.Guid == Guid;
public override string ToString() => Get().ToString();
}