Exemple #1
0
 internal QueryBuilderUpdate(IDbConnection connection, Compiler compiler, EntityDescription entityDescription)
     : base(connection,
            compiler,
            x => x.From(entityDescription.EntityTable.Name).AsUpdate(entityDescription.GetValues()).Where(entityDescription.GetWhere()))
 {
     EntityDescription = entityDescription;
 }
 internal QueryBuilderInsert(IDbConnection connection, Compiler compiler, EntityDescription entityDescription)
     : base(connection,
            compiler,
            x => x.From(entityDescription.EntityTable.Name).AsInsert(entityDescription.GetValues(), entityDescription.EntityKey.AutoIncrement))
 {
     EntityDescription = entityDescription;
 }
        public T Save <T>()
        {
            SqlResult     compile = CompileSqlResult();
            Result <long> result  = Connection.QueryFirstOrDefault <Result <long> >(compile.Sql, compile.NamedBindings);

            Query.ClearComponent("insert");
            Query.Method = "select";
            Query.Where(EntityDescription.GetPrimaryKeyName(), result.Id);
            compile = CompileSqlResult();
            return(Connection.QueryFirstOrDefault <T>(compile.Sql, compile.NamedBindings));
        }