All Versions
15
Latest Version
Avg Release Cycle
25 days
Latest Release
1354 days ago

Changelog History
Page 2

  • v4.1.11 Changes

    July 30, 2019

    ๐Ÿ‘ 1. add support Now-Tag

     \<Statement Id="GetNow"\> \<Now Property="CreateTime"/\> Select @CreateTime; \</Statement\> \<Statement Id="UpdateDateTime"\> \<Now Property="CreateTime"/\> UPDATE T\_AllPrimitive \<Set\> DateTime =@CreateTime \</Set\> Where Id=@Id \</Statement\>
    
    Select @CreateTime;
    Parameters:[CreateTime=2019/7/30 3:46:18]
    Sql with parameter value: 
    Select '2019/7/30 3:46:18'; (99204db3)
    
    UPDATE T_AllPrimitive
           Set DateTime =@DateTime
          Where Id=@Id
    Parameters:[DateTime=2019/7/30 11:38:13,Id=86088]
    Sql with parameter value: 
    UPDATE T_AllPrimitive
           Set DateTime ='2019/7/30 11:38:13'
          Where Id=86088 
    

    ๐Ÿ‘ 1. add support Properties nest propExp

    1. add UsePropertiesFromEnv api for SmartSqlBuilder
    2. add CryptoTypeHandler api - pre
    3. add IFunction api - pre
  • v4.1.10

    July 30, 2019
  • v4.1.9 Changes

    July 29, 2019

    ๐Ÿ‘ 1. add support IgnoreDbNull ofr SmartSqlConfig ๐Ÿ‘ 2. add support AddTypeHandler for SmartSqlBuilder

    1. add GetSetParameterValue api for TypeHandler
    2. add TypeScan
    3. add RegisterEntity for SmartSqlBuilder ๐Ÿ‘ 6. add support TypeHandler for Bulk api ๐Ÿ‘ 7. add support Cache-Annotation with Cache-XML Mixed use โšก๏ธ 8. optimize PrepareStatement ๐Ÿ‘ 9. add support EnablePropertyChangedTrack/ReadDb/CommandTimeout for StatementAttribute
  • v4.1.5 Changes

    July 27, 2019

    ๐Ÿ‘ 1. add support CacheKeyTemplate for RequestContext

    1. add Rest api for ICacheManager ๐Ÿ‘ 3. add support for dynamic generation of SqlMap with Repository interface

      [Cache("DateCache", "Lru", FlushInterval = 6000)] [Cache("LruCache", "Lru", FlushInterval = 6000)] [Cache("UserCache", "Fifo", FlushOnExecutes = new[] {"UpdateUserName"})] public interface IUsedCacheRepository { [ResultCache("DateCache", Key = "GetNow")] [Statement(Sql = "Select GetDate();")] DateTime GetNow(); [ResultCache("LruCache", Key = "GetId:$id")] [Statement(Sql = "Select @id;")] int GetId(long id); [ResultCache("UserCache", Key = "GetUserById:$id")] [Statement(Sql = "select * from T_User where id=@id;")] User GetUserById(long id); [Statement(Sql = "update T_User set UserName=@userName where id=@id;")] int UpdateUserName(long id, string userName); }

  • v4.1.3 Changes

    July 26, 2019
    1. Change Sample DB To SQLite And Fix SQLite ParameterPrefix ๐Ÿ‘ 2. add support [For-tag] nest-value-access โšก๏ธ 3. optimize Check null-Tag.Property from XML-tag โšก๏ธ 4. optimize Check null-Tag.Property ExceptionMessage ๐Ÿ‘ 5. add support Cache-Annotations for Repository-interface - Demo

      [Cache("DateCache", "Lru", FlushInterval = 6000)] [Cache("LruCache", "Lru", FlushInterval = 6000)] [Cache("UserCache", "Fifo", FlushOnExecutes = new[] {"UpdateUserName"})] public interface IUsedCacheRepository { [ResultCache("DateCache", Key = "GetNow")] [Statement(Sql = "Select Now();")] DateTime GetNow(); [ResultCache("LruCache", Key = "GetId:$id")] [Statement(Sql = "Select @id;")] int GetId(long id); [ResultCache("UserCache", Key = "GetUserById:$id")] [Statement(Sql = "select * from T_User where id=@id;")] User GetUserById(long id); [Statement(Sql = "update T_User set UserName=@userName where id=@id;")] int UpdateUserName(long id, string userName); }

    ๐Ÿ‘ 1. add support ColumnAttribute for EntityDeserializer ๐Ÿ‘ 2. add support ColumnAttribute for RequestConvert ๐Ÿ‘ 3. add support ParamAttribute for TypeHandler

    1. add ResultType From ArrayType to Object for ExecuteScalar.

      [Annotations.Table("t_annotation_entity")] public class ColumnAnnotationEntity { [Annotations.Column("id", IsAutoIncrement = true)] public long Id { get; set; } [Annotations.Column("name")] public String Name { get; set; } [Annotations.Column("extend_data", TypeHandler = "Json")] public ExtendData Data { get; set; } public class ExtendData { public String Info { get; set; } } }


    public interface IColumnAnnotationRepository { ISqlMapper SqlMapper { get; } [Statement(Sql = "Select Top 1 T.\* From t\_column\_annotation\_entity T where T.id=@id")] ColumnAnnotationEntity GetEntity(long id); [Statement(Sql ="INSERT INTO t\_column\_annotation\_entity(name,extend\_data)VALUES(@Name,@Data);Select Scope\_Identity();")] int Insert(ColumnAnnotationEntity entity); [Statement(Sql ="INSERT INTO t\_column\_annotation\_entity(name,extend\_data)VALUES(@Name,@Data);Select Scope\_Identity();")] int Insert([Param("Name")] string name, [Param("Data", TypeHandler = "Json")] ColumnAnnotationEntity.ExtendData data); }