示例#1
0
        /// <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));
        }
示例#2
0
        /// <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));
        }