/// <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)); }
/// <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); }