Ejemplo n.º 1
0
 /// <summary>
 /// 简单 ORM 映射
 /// </summary>
 internal static void Test()
 {
     using (AutoCSer.Sql.ModelTable <OrmOnly> sqlTable = AutoCSer.Sql.ModelTable <OrmOnly> .Get())
     {
         AutoCSer.Metadata.MemberMap <OrmOnly> updateMemberMap = sqlTable.CreateMemberMap().Set(value => value.Value);
         sqlTable.InsertQueue(new OrmOnly {
             Value = 1
         });
         foreach (OrmOnly value in sqlTable.SelectQueue().Value)
         {
             Console.WriteLine(value.toJson());
             sqlTable.UpdateQueue(new OrmOnly {
                 Id = value.Id, Value = value.Value + 1
             }, updateMemberMap);
         }
         //foreach (OrmOnly value in sqlTable.Select())
         //{
         //    Console.WriteLine(value.toJson());
         //    sqlTable.Delete(value.Id);
         //}
         using (deleteWait = new AutoResetEvent(false))
         {
             deleteCount = 1;
             foreach (OrmOnly value in sqlTable.SelectQueue().Value)
             {
                 Console.WriteLine(value.toJson());
                 Interlocked.Increment(ref deleteCount);
                 sqlTable.DeleteQueue(value.Id, onDeleted);
             }
             onDeleted();
             deleteWait.WaitOne();
         }
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// 更新数据前验证数据可取消更新数据操作
 /// </summary>
 /// <param name="value">待更新数据</param>
 /// <param name="memberMap">更新数据成员位图</param>
 /// <param name="cancel">取消操作数据</param>
 private static void onUpdate(NowTime value, AutoCSer.Metadata.MemberMap <OrmModel.NowTime> memberMap, ref AutoCSer.Sql.AnyCancel cancel)
 {
     if (!cancel.IsCancel)
     {
         //更新数据前验证数据可取消更新数据操作
     }
 }
Ejemplo n.º 3
0
        internal static bool TestCase()
        {
            MemberMap value = new MemberMap {
                Value1 = 1, Value2 = 2, Value3 = 3
            };

            //成员位图初始化代价比较大,应该根据需求重用该对象
            AutoCSer.Metadata.MemberMap <MemberMap> serializeMemberMap = AutoCSer.Metadata.MemberMap <MemberMap> .NewEmpty();

#if DOTNET2
            serializeMemberMap.SetMember("Value1");                //添加成员 Value1
            serializeMemberMap.SetMember("Value2");                //添加成员 Value2
#else
            serializeMemberMap.SetMember(member => member.Value1); //添加成员 Value1
            serializeMemberMap.SetMember(member => member.Value2); //添加成员 Value2
#endif
            AutoCSer.Xml.SerializeConfig serializeMemberMapConfig = new AutoCSer.Xml.SerializeConfig {
                MemberMap = serializeMemberMap
            };

            string    xml      = AutoCSer.XmlSerializer.Serialize(value, serializeMemberMapConfig);
            MemberMap newValue = AutoCSer.XmlDeSerializer.DeSerialize <MemberMap>(xml);

            return(newValue != null && newValue.Value1 == 1 && newValue.Value2 == 2 && newValue.Value3 == 0);
        }
Ejemplo n.º 4
0
 protected void setMember(AutoCSer.Metadata.MemberMap <modelType> .MemberIndex memberIndex)
 {
     if (memberMap == null)
     {
         memberMap = AutoCSer.Metadata.MemberMap <modelType> .NewEmpty();
     }
     memberIndex.SetMember(memberMap);
 }
Ejemplo n.º 5
0
 internal void ParseJson(AutoCSer.JsonDeSerializer parser)
 {
     if (MemberMap == null)
     {
         MemberMap = AutoCSer.Metadata.MemberMap <valueType> .NewEmpty();
     }
     parser.MemberMap = MemberMap;
     parser.TypeDeSerialize(ref Value);
 }
Ejemplo n.º 6
0
 private void deSerialize(AutoCSer.BinaryDeSerializer deSerializer)
 {
     AutoCSer.Metadata.MemberMap oldMemberMap = deSerializer.SetCustomMemberMap(MemberMap);
     try
     {
         deSerializer.TypeDeSerialize(ref Value);
     }
     finally { MemberMap = (AutoCSer.Metadata.MemberMap <valueType>)deSerializer.SetCustomMemberMap(oldMemberMap); }
 }
Ejemplo n.º 7
0
 internal void ParseXml(AutoCSer.XmlDeSerializer xmlDeSerializer)
 {
     if (MemberMap == null)
     {
         MemberMap = AutoCSer.Metadata.MemberMap <valueType> .NewEmpty();
     }
     xmlDeSerializer.MemberMap = MemberMap;
     xmlDeSerializer.TypeDeSerialize(ref Value);
 }
Ejemplo n.º 8
0
 internal void ParseXml(AutoCSer.Xml.Parser parser)
 {
     if (MemberMap == null)
     {
         MemberMap = AutoCSer.Metadata.MemberMap <valueType> .NewEmpty();
     }
     parser.MemberMap = MemberMap;
     parser.TypeParse(ref Value);
 }
Ejemplo n.º 9
0
 /// <summary>
 /// SQL操作缓存
 /// </summary>
 /// <param name="table">SQL操作工具</param>
 /// <param name="group">数据分组</param>
 protected Table(Sql.Table <valueType, modelType> table, int group)
 {
     if (table == null)
     {
         throw new ArgumentNullException();
     }
     memberGroup = group;
     SqlTable    = table;
     MemberMap   = DataModel.Model <modelType> .GetCacheMemberMap(group);
 }
Ejemplo n.º 10
0
        public static VT copy <VT, BT>(this VT value, AutoCSer.Metadata.MemberMap <BT> memberMap)
            where VT : class, BT
        {
            if (value == null)
            {
                return(null);
            }
            VT newValue = AutoCSer.Metadata.DefaultConstructor <VT> .Constructor();

            AutoCSer.MemberCopy.Copyer <BT> .Copy(newValue, value, memberMap);

            return(newValue);
        }
Ejemplo n.º 11
0
        public static T copy <T>(this T value, AutoCSer.Metadata.MemberMap <T> memberMap = null)
            where T : class
        {
            if (value == null)
            {
                return(null);
            }
            T newValue = AutoCSer.Metadata.DefaultConstructor <T> .Constructor();

            AutoCSer.MemberCopy.Copyer <T> .Copy(newValue, value, memberMap);

            return(newValue);
        }
Ejemplo n.º 12
0
        public static valueType copy <valueType>(this valueType value, AutoCSer.Metadata.MemberMap <valueType> memberMap = null)
            where valueType : class
        {
            if (value == null)
            {
                return(null);
            }
            valueType newValue = AutoCSer.Emit.Constructor <valueType> .New();

            AutoCSer.MemberCopy.Copyer <valueType> .Copy(newValue, value, memberMap);

            return(newValue);
        }
Ejemplo n.º 13
0
 internal void ToXml(AutoCSer.XmlSerializer serializer)
 {
     if (MemberMap == null || MemberMap.IsDefault)
     {
         serializer.TypeSerialize(Value);
     }
     else
     {
         AutoCSer.Metadata.MemberMap memberMap = serializer.SetCustomMemberMap(MemberMap);
         try
         {
             serializer.TypeSerialize(Value);
         }
         finally { serializer.SetCustomMemberMap(memberMap); }
     }
 }
Ejemplo n.º 14
0
 /// <summary>
 /// 简单 ORM 映射
 /// </summary>
 internal static void Test()
 {
     using (AutoCSer.Sql.ModelTable <OrmOnly> sqlTable = AutoCSer.Sql.ModelTable <OrmOnly> .Get())
     {
         AutoCSer.Metadata.MemberMap <OrmOnly> updateMemberMap = sqlTable.CreateMemberMap().Set(value => value.Value);
         sqlTable.Insert(new OrmOnly {
             Value = 1
         });
         foreach (OrmOnly value in sqlTable.Select())
         {
             Console.WriteLine(value.toJson());
             sqlTable.Update(new OrmOnly {
                 Id = value.Id, Value = value.Value + 1
             }, updateMemberMap);
         }
         foreach (OrmOnly value in sqlTable.Select())
         {
             Console.WriteLine(value.toJson());
             sqlTable.Delete(value.Id);
         }
     }
 }
Ejemplo n.º 15
0
        internal static bool TestCase()
        {
            DisabledMemberMap value = new DisabledMemberMap {
                Value1 = 1, Value2 = 2, Value3 = 3
            };

            AutoCSer.Metadata.MemberMap <DisabledMemberMap> serializeMemberMap = AutoCSer.Metadata.MemberMap <DisabledMemberMap> .NewEmpty();

#if DOTNET2
            serializeMemberMap.SetMember("Value1");                //添加成员 Value1
            serializeMemberMap.SetMember("Value2");                //添加成员 Value2
#else
            serializeMemberMap.SetMember(member => member.Value1); //添加成员 Value1
            serializeMemberMap.SetMember(member => member.Value2); //添加成员 Value2
#endif
            AutoCSer.BinarySerialize.SerializeConfig serializeMemberMapConfig = new AutoCSer.BinarySerialize.SerializeConfig {
                MemberMap = serializeMemberMap
            };

            byte[]            data     = AutoCSer.BinarySerializer.Serialize(value, serializeMemberMapConfig);
            DisabledMemberMap newValue = AutoCSer.BinaryDeSerializer.DeSerialize <DisabledMemberMap>(data);

            return(newValue != null && newValue.Value1 == 1 && newValue.Value2 == 2 && newValue.Value3 == 3);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 修改学生处理
        /// </summary>
        /// <param name="cacheValue">当前缓存对象</param>
        /// <param name="value">修改之后的对象数据</param>
        /// <param name="oldValue">修改之前的对象数据</param>
        /// <param name="memberMap">被修改成员位图</param>
        private static void onUpdated(Student cacheValue, Student value, Student oldValue, AutoCSer.Metadata.MemberMap<SqlModel.Student> memberMap)
        {
            if (MemberIndexs.Classes.IsMember(memberMap))
            {
                Class Class = Class.Loader.Cache[oldValue.ClassId];
                if (Class != null) Class.SqlLogMember.StudentCount(Class.SqlLogProxyMember.StudentCount - 1);

                onInserted(cacheValue);
            }
        }
Ejemplo n.º 17
0
 public AutoCSer.Metadata.MemberMap SetCustomMemberMap(AutoCSer.Metadata.MemberMap memberMap)
 {
     return(Config.SetCustomMemberMap(memberMap));
 }
Ejemplo n.º 18
0
 public static void copyForm <T>(this T value, ref T readValue, AutoCSer.Metadata.MemberMap <T> memberMap = null)
 {
     AutoCSer.MemberCopy.Copyer <T> .Copy(ref value, readValue, memberMap);
 }
Ejemplo n.º 19
0
 public static void copyTo <T>(this T value, ref T writeValue, AutoCSer.Metadata.MemberMap <T> memberMap = null)
 {
     AutoCSer.MemberCopy.Copyer <T> .Copy(ref writeValue, value, memberMap);
 }
Ejemplo n.º 20
0
 public static void copyForm <valueType>(this valueType value, ref valueType readValue, AutoCSer.Metadata.MemberMap <valueType> memberMap = null)
 {
     AutoCSer.MemberCopy.Copyer <valueType> .Copy(ref value, readValue, memberMap);
 }
Ejemplo n.º 21
0
 /// <summary>
 /// 更新数据操作后续处理
 /// </summary>
 /// <param name="value">更新后的数据</param>
 /// <param name="oldValue">更新前的数据</param>
 /// <param name="memberMap">更新数据成员位图</param>
 private static void onUpdated(NowTime value, NowTime oldValue, AutoCSer.Metadata.MemberMap <OrmModel.NowTime> memberMap)
 {
 }
Ejemplo n.º 22
0
        /// <summary>
        /// 数据更新成员位图
        /// </summary>
        /// <param name="value">更新数据</param>
        /// <param name="memberMap">成员位图</param>
        protected UpdateMemberMap(tableType value, AutoCSer.Metadata.MemberMap <modelType> memberMap)
        {
            this.value = value ?? AutoCSer.Emit.Constructor <tableType> .New();

            this.memberMap = memberMap;
        }
Ejemplo n.º 23
0
 public static void copyTo <valueType>(this valueType value, ref valueType writeValue, AutoCSer.Metadata.MemberMap <valueType> memberMap = null)
 {
     AutoCSer.MemberCopy.Copyer <valueType> .Copy(ref writeValue, value, memberMap);
 }