FreeSql v0.5.x 功能介紹

弱類型

以前在操做實體時,必須傳統泛型參數,如今能夠實現弱類型實體的操做。以 Repository 爲例:sql

var repos = fsql.GetGuidRepository<object>();
repos.AsType(typeof(AddUpdateInfo));

var item = new AddUpdateInfo();
repos.Insert(item);

item.Clicks += 1;
repos.InsertOrUpdate(item);

var item2 = repos.Find(item.Id) as AddUpdateInfo;
Assert.Equal(item.Clicks, item2.Clicks);

repos.DataFilter.Apply("xxx", a => (a as AddUpdateInfo).Clicks == 11);
Assert.Null(repos.Find(item.Id));

而後呢,DbContext 也支持一樣的操做。app

ToList & Mapper

如今支持 ToList(a => new Dto()) 這樣的簡單數據映射,而後它會依次序匹配 LeftJoin/InnerJoin/RightJoin 的實體。單元測試

WhereDynamic 動態條件

支持傳入動態對象如:主鍵值 | new[]{主鍵值1,主鍵值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}。測試

ToList(true) 貪婪加載

之前 .ToList() 會加載兩級Join對象;優化

如今 ISelect.ToList(includeNestedMembers: true) 貪婪加載全部 LeftJoin/InnerJoin/RightJoin 導航數據,不論對象的層級;ui

IAdo.Query 多個結果集

var result = fsql.Ado.Query<T1, T2>("select * from t1; select * from t2");

其餘

v0.5.3

  • 增長 ISelect.ToList(true) 貪婪加載 LeftJoin/InnerJoin/RightJoin 導航數據;
  • 增長 IAdo.Query<T1, T2 ...> 多結果集查詢;
  • 增長 IAdo.ExecuteDataSet 多結果集查詢;
  • 優化 未設置實體屬性 set 的將被自動過濾 IsIgnore;

v0.5.2

  • 修復 SqlServer 工做單元 bug,須要同時設置 SqlCommand.Connection + Transaction;
  • 補充 測試與支持聯合主鍵的自增;

v0.5.1(五一版)

  • 增長 ISelect/IInsert/IUpdate/IDelete.AsType 實現弱類型curd,如:Select<object>().AsType(實體類型);
  • 補充 ISelect.From<T2>;
  • 補充 ExpressionTree 單元測試;
  • 優化 ToList(a => new Dto()),會按優先級查詢 Join 實體屬性;
  • 補充 IDelete/ISelect/IUpdate WhereDynamic 方法,實現 dywhere 條件;
  • 修復 WhereObject 內部方法,當開啓 Lazy 延時屬性時,而且傳遞實體查詢時條件無效;code

  • 補充 實現表達式轉換類型的解析,如:Select<object>().Where(a => (a as 實體類型).Id == 0);
  • 完善 ExpressionTree 基礎數據類型 TryParse 使用與單元測試;
  • 優化 ManyToMany 中間實體未配置主鍵時,自動配置聯合主鍵;
  • 修復 Expression.And 的使用問題;對象

  • 修復 IsIgnore 過濾字段後,查詢的錯誤;
  • 修復 ISelect2 以上 WhereIf 條件做用反了 bug;it

相關文章
相關標籤/搜索