コード例 #1
0
        static void Main(string[] args)
        {
            SessionFactories.Register <MySqlSessionFactory>();

            string sql01 = "select * from Person where Id = ? and Name = ?";
            string sql02 = "select * from Person where Id = ? and Name = ?;";

            var parts01 = sql01.Split('?');
            var parts02 = sql02.Split('?');

            var person = new Person();

            person.Name       = "test";
            person.Money      = 100;
            person.CreateTime = DateTime.Now;
            person.IsActive   = false;


            Stopwatch watch = new Stopwatch();

            for (int i = 0; i < 10; i++)
            {
                watch.Start();

                var handler = DynamicHelper.CreateDynamicPropertySetHandler(person.GetType().GetProperty("Age"));

                handler(person, 20);

                var proxy = EntityProxyGenerator.CreateProxy <Person>(person);

                watch.Stop();

                Console.WriteLine(watch.Elapsed);

                watch.Reset();
            }



//            using (ISession session = SessionFactory.CreateDefaultSession())
//            {
//                int i = session.Insert(person);
//
//                Console.WriteLine(SqlCmd.Current.Sql);
//
//                int id = session.GetIndentifer<int>();
//            }

            Console.ReadLine();
        }
コード例 #2
0
        /// <summary>
        /// 通过 Emit 方式设置属性值
        /// </summary>
        /// <param name="property"></param>
        /// <param name="instance"></param>
        /// <param name="value"></param>
        public static void EmitSetValue(this PropertyInfo property, object instance, object value)
        {
            DynamicPropertySetHandler handler = DynamicHelper.CreateDynamicPropertySetHandler(property);

            handler(instance, value);
        }