Example #1
0
        public DbCommandSpec GetInsertCommand(IEntity entity, int?parentId)
        {
            var command = new DbCommandSpec();

            var columnProperties = propertyMaps.Where(x => x is IPropertyMapWithColumn <T>).Cast <IPropertyMapWithColumn <T> >();
            var writableColumns  = columnProperties.Where(x => !x.SetterIsPrivate).ToList();
            var columnNames      = writableColumns.Select(x => x.ColumnName).ToList();
            var paramterNames    = writableColumns.Select(x => x.ColumnName).ToList();

            if (!string.IsNullOrEmpty(ParentColumnName))
            {
                columnNames.Add(ParentColumnName);
                paramterNames.Add(ParentColumnName);
                command.AddParameter(ParentColumnName, parentId);
            }

            var sql = string.Format("insert into {0} ({1}) values ({2})",
                                    TableName,
                                    string.Join(",", columnNames.ToArray()),
                                    string.Join(",", paramterNames.Select(x => SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX + x).ToArray()));

            command.SetCommandText(sql);

            foreach (var map in writableColumns)
            {
                command.AddParameter(map.ColumnName, map.GetColumnValue(entity));
            }

            return(command);
        }
Example #2
0
        public DbCommandSpec GetUpdateCommand(IEntity entity, int?parentId)
        {
            var command = new DbCommandSpec();

            var columnProperties = propertyMaps
                                   .Where(x => x is IPropertyMapWithColumn <T>)
                                   .Cast <IPropertyMapWithColumn <T> >()
                                   .ToList();
            var setPairs = columnProperties
                           .Where(x => x.ColumnName != "Id")
                           .Select(x => string.Format("{0}={1}{0}", x.ColumnName, SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX))
                           .ToList();

            if (!string.IsNullOrEmpty(ParentColumnName))
            {
                setPairs.Add(string.Format("{0}={1}{0}", ParentColumnName, SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX));
                command.AddParameter(ParentColumnName, parentId);
            }

            var sql = string.Format("update {0} set {1} where Id = {2}Id",
                                    TableName,
                                    string.Join(",", setPairs.ToArray()),
                                    SessionFactory.DEFAULT_SQL_PARAMETER_PREFIX);

            command.AddParameter("Id", entity.Id);

            command.SetCommandText(sql);

            foreach (var map in columnProperties)
            {
                command.AddParameter(map.ColumnName, map.GetColumnValue(entity));
            }

            return(command);
        }
Example #3
0
        public DbCommandSpec GetFindCommand(IList <Parameter> parameters, IList <string> condtions)
        {
            var command = new DbCommandSpec();

            foreach (var parameter in parameters)
            {
                command.AddParameters(parameter);
            }
            var sql = BaseSelectSql;

            if (condtions.Count > 0)
            {
                sql += " where " + string.Join(" and ", condtions.ToArray());
            }
            command.SetCommandText(sql);
            return(command);
        }