
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;