开源代码

一、概述

Fdb是一款基于ASP.NET的ORM框架。分为Framework和Core两个版本。各版本使用方法一致。

开发工具为VS 2022。

.NET领域已经有成熟的ORM框架,如EF CORE、Dapper、Sqlsugar。

只是想亲自实现一个自己的ORM,从最简单的方法开始,一步步完善。泛依系列软件的后端数据交互都是基于此ORM实现。

此ORM主要特点就是关系映射实体,可根据关系表映射成实体类,也可以根据实体类自动生成数据表。没有专属概念,会写sql即可上手使用,

如果您对.NET ORM框架感兴趣,本框架也可以用于ORM框架入门学习和研究使用。

二、使用方法

        
            //数据库上下文类
            public class FDbcontext : BaseDbContext
            {
                public readonly Logic<Org_user>
                Org_user = new Logic<Org_user>();
                public FDbcontext(string connectionString) : base(connectionString)
                {
                    this.Org_user.ConnectionString = connectionString;
                    this.Org_user.DatabaseType = _DatabaseType;
                }
            }

            //定义上下文对象
            FDbcontext dbcontext = new FDbcontext("连接字符串");

            //新建
            ExecuteResult er = new ExecuteResult();
            er = this._fDbContext.Org_user.Insert(org_user);

            //编辑
            er = this._fDbContext.Org_user.Update(org_user);

            //根据主键ID获取对象
            Org_user org_user = this._fDbContext.Org_user.Fetch(_id);

            //根据主键ID删除数据
            ExecuteResult er = this._fDbContext.Org_user.Delete(_id);

            //获取数据列表
            List<Org_user>
            org_user_list = this._fDbContext.Org_user.FetchList();

            //分页查询
            PagedQuery pagedQuery = new PagedQuery();
            pagedQuery.IdField = "ID";
            pagedQuery.PageIndex = string.IsNullOrEmpty(pageindex) ? 1 : pageindex.ToInt();
            if (!string.IsNullOrEmpty(orderby))
            {
            switch (orderby)
            {
            case "1": pagedQuery.SortClause = "NAME "; break;
            }

            pagedQuery.SortClause += (ordertype == "0" ? "desc" : "asc");
            }
            else
            {
            pagedQuery.SortClause = "ID desc";
            }

            Org_user org_user = new Org_user();
            if (!string.IsNullOrEmpty(keyword))
            {
            org_user.CNNAME = "%" + keyword + "%";
            org_user.LOGINNAME = "%" + keyword + "%";
            }

            pagedQuery.PageSize = this._PageSize;
            result.Data = this._fDbContext.Org_user.FetchPageList(org_user, pagedQuery);
            result.Success = true;
            result.Total = this._fDbContext.Org_user.FetchCount(pagedQuery);
            result.PageSize = this._PageSize;
        
    

开源代码