Ejemplo n.º 1
0
        public static void Insert()
        {
            /* User 实体打了序列标签,会自动获取序列值。返回主键 Id */
            int id = (int)context.Insert <User>(() => new User()
            {
                Name = "lu", Age = 18, Gender = Gender.Man, CityId = 1, OpTime = DateTime.Now
            });

            /*
             * SELECT "USERS_AUTOID"."NEXTVAL" FROM "DUAL"
             * Int32 :P_0 = 14;
             * INSERT INTO "USERS"("NAME","AGE","GENDER","CITYID","OPTIME","ID") VALUES(N'lu',18,1,1,SYSTIMESTAMP,:P_0)
             */

            context.Session.ExecuteNonQuery("delete from users where id=56744");

            OracleConnection oracleConnection = new OracleConnection("Data Source=localhost/chloe;User ID=system;Password=sa;");
            OracleCommand    cmd = oracleConnection.CreateCommand();

            //cmd.Parameters.Add(new OracleParameter("P_0", Gender.Man));
            //cmd.Parameters.Add(new OracleParameter("P_1", 18) { OracleType = OracleType.Int32, DbType = System.Data.DbType.Int32, Direction = System.Data.ParameterDirection.Input });
            //cmd.Parameters.Add(new OracleParameter("P_2", DateTime.Now));
            cmd.Parameters.Add(new OracleParameter(":P_3", 56744));
            //cmd.Parameters.Add(new OracleParameter("P_4", "lu"));
            oracleConnection.Open();
            cmd.CommandText = "delete from users where id=:P_3";
            //cmd.CommandText = "INSERT INTO USERS(NAME,AGE,GENDER,CITYID,OPTIME,ID) VALUES(N'lu',18,1,1,SYSTIMESTAMP,56744)";
            var xx = cmd.ExecuteNonQuery();



            //Input Int32 :P_0 = 1;
            //Input Int32 :P_1 = 18;
            //Input DateTime :P_2 = '2017/10/18 23:29:48';
            //Input Int32 :P_3 = 56744;
            //Input String :P_4 = 'lu';
            //INSERT INTO "USERS"("GENDER", "AGE", "CITYID", "OPTIME", "ID", "NAME") VALUES(:P_0,:P_1,:P_0,:P_2,:P_3,:P_4)
            string sql = "INSERT INTO \"USERS\"(\"GENDER\", \"AGE\", \"CITYID\", \"OPTIME\", \"ID\", \"NAME\") VALUES(:P_0,:P_1,:P_0,:P_2,:P_3,:P_4)";

            sql = "INSERT INTO \"USERS\"(\"GENDER\", \"AGE\", \"CITYID\",  \"ID\", \"NAME\") VALUES(1,18,1,56744,'lu')";
            DbParamList dbParamList = new DbParamList();

            //dbParamList.Add("P_0", Gender.Man);
            //dbParamList.Add("P_1", 18);
            //dbParamList.Add("P_2", DateTime.Now);
            //dbParamList.Add("P_3", 56744);
            //dbParamList.Add("P_4", "lu");

            context.Session.ExecuteNonQuery(sql, dbParamList.ToArray());



            User user = new User();

            user.Name   = "lu";
            user.Age    = 18;
            user.Gender = Gender.Man;
            user.CityId = 1;
            user.OpTime = DateTime.Now;

            //会自动将自增 Id 设置到 user 的 Id 属性上
            user = context.Insert(user);

            /*
             * SELECT "USERS_AUTOID"."NEXTVAL" FROM "DUAL"
             * Int32 :P_0 = 15;
             * String :P_1 = 'lu';
             * Int32 :P_2 = 1;
             * Int32 :P_3 = 18;
             * DateTime :P_4 = '2016/9/5 9:16:59';
             * INSERT INTO "USERS"("ID","NAME","GENDER","AGE","CITYID","OPTIME") VALUES(:P_0,:P_1,:P_2,:P_3,:P_2,:P_4)
             */

            ConsoleHelper.WriteLineAndReadKey();
        }