Ejemplo n.º 1
0
        /// <summary> Updates the builder described by item. </summary>
        /// <param name="item"> The item. </param>
        /// <returns> . </returns>
        public Persist Update(object item, string name = null)
        {
            var flattener = new Flattener();
            var values    = flattener.GetNamesAndValues(item);
            var tableName = name ?? item.GetType().Name;

            return(Update(tableName, item, values));
        }
Ejemplo n.º 2
0
        /// <summary> Generates a sql. </summary>
        /// <param name="item"> The item. </param>
        /// <param name="name"> The name. </param>
        /// <returns> The sql. </returns>
        private static Persist GenerateSql(object item, string name)
        {
            IKeysDefined[] keysDefineds = { new HasPrimaryKeys(), new PrimaryKeysNotDefined() };

            var flattener   = new Flattener();
            var primaryKeys = flattener.GetPropertiesWithDefaultValues <KeyAttribute>(item).ToList();
            var properties  = flattener.GetNamesAndValues(item).ToList();
            var nameTable   = name ?? GetTableNameByType(item);

            var primaryKeysExists = primaryKeys.Any();
            var first             = keysDefineds.First(k => k.PrimaryKeysExist == primaryKeysExists);

            var sql = first.GenerateSql(nameTable, item, primaryKeys, properties);

            return(sql);
        }