/// <summary> /// Fast lookup of an object for dynamic use, from a class which has a PrimaryKey property. /// </summary> /// <param name="className">Name of class in dynamic situation.</param> /// <param name="id">Id to be matched exactly, same as an == search.</param> /// <returns>Null or an object matdhing the id.</returns> /// <exception cref="RealmClassLacksPrimaryKeyException">If the RealmObject class lacks an [PrimaryKey].</exception> public RealmObject ObjectForPrimaryKey(string className, string id) { var metadata = Metadata[className]; var rowPtr = NativeTable.RowForPrimaryKey(metadata.Table, metadata.PrimaryKeyColumnIndex, id); if (rowPtr == IntPtr.Zero) { return(null); } return(MakeObjectForRow(metadata, rowPtr)); }
/// <summary> /// Fast lookup of an object from a class which has a PrimaryKey property. /// </summary> /// <typeparam name="T">The Type T must be a RealmObject.</typeparam> /// <param name="id">Id to be matched exactly, same as an == search.</param> /// <returns>Null or an object matdhing the id.</returns> /// <exception cref="RealmClassLacksPrimaryKeyException">If the RealmObject class T lacks an [PrimaryKey].</exception> public T ObjectForPrimaryKey <T>(string id) where T : RealmObject { var metadata = Metadata[typeof(T).Name]; var rowPtr = NativeTable.RowForPrimaryKey(metadata.Table, metadata.PrimaryKeyColumnIndex, id); if (rowPtr == IntPtr.Zero) { return(null); } return((T)MakeObjectForRow(metadata, rowPtr)); }