コード例 #1
0
ファイル: DBSession.Helper.cs プロジェクト: keguoquan/DBFrame
        /// <summary>
        /// 获取对象对应映射属性的值
        /// </summary>
        /// <param name="column">对应数据库中的列</param>
        /// <param name="persistent">映射对象</param>
        /// <returns>返回的值</returns>
        protected object GetValue(DBColumn column, object persistent)
        {
            if (column.GetHandler != null)
            {
                object value = column.GetHandler(persistent);

                if (value != null)
                {
                    if (value is bool)
                    {
                        //布尔需要转换为0和1才能插入到数据库中
                        return(((bool)value) ? 1 : 0);
                    }
                    else if (column.Type.IsEnum)
                    {
                        //枚举需要转换为Int32才能插入到数据库中
                        return((int)value);
                    }
                    else if (value is Guid)
                    {
                        //Guid处理成为字符串返回,以便插入到数据库中
                        if (value == null)
                        {
                            return(value);
                        }
                        return(GuidToString(new Guid(value.ToString())));
                    }
                    else if (value is XmlDocument)
                    {
                        return(((XmlDocument)value).InnerXml);
                    }
                }
                return(value);
            }
            return(null);
        }