以前用netcore搭建了一個小項目,數據庫操做用的是要手寫sql語句的connection和command,一直想調個EFCore或者相似SOA那樣的框架html
今天看到了DotNet公衆號提到的.NET Core新型ORM,因而興起打算試試如何去使用sql
其推文轉自數據庫
cnblogs.com/kellynic/p/10645049.html框架
1. 要搭建context,則天然須要繼承自框架的DbContextide
先新增Nuget包——FreeSql,可是要注意的是FreeSql.DbContext並非在原始包中,而是一個拓展的類ui
故還須要在Nuget控制檯輸入命令:dotnet add 項目名 package FreeSql.DbContext將拓展包安裝好spa
而後就與EF那樣重寫配置方法htm
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var _fsql = new FreeSqlBuilder()
.UseConnectionString(dataType, OACommon.DatabaseHepler.ConnectionString)
.Build();
optionsBuilder.UseFreeSql(_fsql);
}對象
2. 定義DbSet變量,注意:實體類名稱要與數據庫表名稱保持一致blog
3. 一開始我覺得還須要向EF那樣定義map,但是當我直接調用DbSet變量,發現竟能夠獲取到表數據,猜想應該是經過實體名稱反射獲得的表名
using (var db = new OAModels.FreeSqlManager.FSqlContext())
{
var users = db.user_info.Select.ToList();
}
4. 至此,FreeSql的context算是搭建完成,但遇到兩個問題:
1)是否可使用linq操做?稍微試了一下,不行,後續再看看有沒有什麼辦法
不支持
2)聯表查詢LeftJoin,獲得的實體仍是調用了select的那個實體,即沒有另外一個表的數據,如何獲得另外一個表中想要的數據呢?
能夠試試評論中的寫法:LeftJoin 定義約定的導航對象,會一塊兒查詢返回
越努力越幸運,努力須要自制,但願本身可以有更強的自制力!感恩自信自律!