FreeSql.Repository (十)动态实体类型

欢迎来到《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();

系列文章导航

posted @   FreeSql  阅读(1757)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示
主题色彩