예제 #1
0
파일: XmlKey.cs 프로젝트: fangliu520/Beeant
        /// <summary>
        /// 得到OrmKey
        /// </summary>
        /// <param name="node"></param>
        /// <returns></returns>
        protected virtual void AddOrmKeyByXmlNode(XmlNode node)
        {
            var key = new OrmKeyInfo();

            if (node.Attributes != null)
            {
                key.Name        = node.Attributes["Name"].Value;
                key.Flag        = node.Attributes["Flag"] == null?"": node.Attributes["Flag"].Value;
                key.Recovery    = node.Attributes["Recovery"] == null ? "" : node.Attributes["Recovery"].Value;
                key.RightLength = Convert.ToInt32(node.Attributes["RightLength"].Value);
            }
            OrmKeys.Add(key);
        }
예제 #2
0
파일: Key.cs 프로젝트: fangliu520/Beeant
        /// <summary>
        /// 得到实体键
        /// </summary>
        /// <param name="orm"></param>
        /// <returns></returns>
        protected virtual int GetEntityKey(OrmObjectInfo orm)
        {
            var key = OrmKeys.FirstOrDefault(it => it.Name.Equals(orm.Key));

            if (key == null || string.IsNullOrEmpty(key.Recovery) || orm.PrimaryProperty.IsIdentityKey)
            {
                return(0);
            }
            var sql = key.Recovery.Replace("{Key}", orm.PrimaryProperty.PropertyName).Replace("{Table}", orm.SetTableName);
            var dt  = Executor.ExecuteQuery <DataTable>(orm.SetDataBase, sql, CommandType.Text);

            return(dt != null && dt.Rows.Count > 0 ?
                   Convert.ToInt32(dt.Rows[0][0].ToString()) : 0);
        }
예제 #3
0
파일: Key.cs 프로젝트: fangliu520/Beeant
        /// <summary>
        /// 克隆Key
        /// </summary>
        /// <param name="keyName"></param>
        /// <returns></returns>
        protected virtual OrmKeyInfo CloneOrmKey(string keyName)
        {
            var key = OrmKeys.FirstOrDefault(it => it.Name.Equals(keyName));

            if (key == null)
            {
                return(null);
            }
            return(new OrmKeyInfo
            {
                Count = 0,
                Flag = key.Flag,
                RightLength = key.RightLength
            });
        }