歡迎來到《FreeSql.Repository 倉儲模式》系列文檔,本系列文檔專注介紹 【倉儲+工作單元】 的使用方式。完整文檔請前往 wiki 中心:https://github.com/dotnetcore/FreeSql/wiki
我們使用倉儲都是用傳入泛型處理的,如果不知道實體類型怎么使用?FreeSql.Repository 支持動態實體類型的操作。
var repo = fsql.GetRepository<object>(); //注意是 object
repo.AsType(typeof(Topic)); //動態類型
repo.Insert(new Topic());
class Topic
{
[Column(IsIdentity = true)]
public int id { get; set; }
public int typeid { get; set; }
}
只需要將泛型傳入 object,再使用 AsType 設置真實的實體類型,它可以是反射得到的目標實體類型。
最終完成對【動態實體類型】的 CRUD 操作。
提示:關於查詢,ISelect 提供了 WhereDynamicFilter/OrderByPropertyName 等方法實現動態查詢
如果實體類不確定,fsql.Select<object>().AsType(反射的實體類型).ToList();
如果實體類確定,表名不確定,fsql.Select<T>().AsTable((type, old) => 返回真實表名). ToList();