示例#1
0
        /// <summary>
        /// Returns a record for this keyValue
        /// </summary>
        /// <param name="keyValue">Key Value</param>
        /// <returns></returns>
        private static T FetchByIdInternal(object keyValue)
        {
            if (keyValue == null)
            {
                return(null);
            }

            // makes sure the table schema is loaded
            T item = new T();

            // build the query
            Query q = new Query(BaseSchema).WHERE(BaseSchema.PrimaryKey.ColumnName, Comparison.Equals, keyValue);

            // load the reader
            using (IDataReader rdr = DataService.GetSingleRecordReader(q.BuildSelectCommand()))
            {
                if (rdr.Read())
                {
                    item.Load(rdr);
                }
                rdr.Close();
            }

            if (!item._isNew && item.IsLoaded)
            {
                return(item);
            }
            return(null);
        }