コード例 #1
0
        /// <summary>
        /// 更新缓存数据
        /// </summary>
        /// <param name="value">缓存数据</param>
        /// <param name="newValue">更新后的新数据</param>
        /// <param name="oldValue">更新前的数据</param>
        /// <param name="updateMemberMap">更新成员位图</param>
        protected void update(valueType value, valueType newValue, valueType oldValue, MemberMap <modelType> updateMemberMap)
        {
            using (MemberMap <modelType> memberMap = MemberMap.Copy())
            {
                memberMap.And(updateMemberMap);
                AutoCSer.MemberCopy.Copyer <modelType> .Copy(value, newValue, memberMap);

                memberMap.Xor(MemberMap);
                memberMap.And(MemberMap);
                AutoCSer.MemberCopy.Copyer <modelType> .Copy(oldValue, value, memberMap);

                AutoCSer.MemberCopy.Copyer <modelType> .Copy(newValue, value, memberMap);
            }
        }
コード例 #2
0
ファイル: Client.cs プロジェクト: AutoCSer/AutoCSer
        /// <summary>
        /// 设置真实成员位图
        /// </summary>
        /// <typeparam name="valueType"></typeparam>
        /// <typeparam name="modelType"></typeparam>
        /// <param name="sqlTool"></param>
        /// <param name="memberMap"></param>
        internal override void SetRealMemberMap <valueType, modelType>(Sql.Table <valueType, modelType> sqlTool, MemberMap <modelType> memberMap)
        {
            if (sqlTool.Attribute.IsSetRealMemberMap)
            {
                MemberMap <modelType> realMemberMap = MemberMap <modelType> .NewEmpty();

                using (DbConnection connection = GetConnection())
                    using (DbCommand command = getCommand(connection, "select top 1 * from [" + sqlTool.TableName + "]", CommandType.Text))
                        using (DataSet dataSet = getDataSet(command))
                        {
                            foreach (DataColumn dataColumn in dataSet.Tables[0].Columns)
                            {
                                realMemberMap.SetMember(dataColumn.ColumnName);
                            }
                        }
                memberMap.And(realMemberMap);
            }
        }