/// <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); }
/// <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); }
/// <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 }); }