.NET Core C#系列之XiaoFeng.Data.IQueryableX ORM框架

?
当前对象操作数据库写法和EF Core极度类似,因为现在大部分程序员都懒得去写SQL,再一个就是项目作大了或其它原因要改数据库,每次改数据库,那么写的SQL语句大部分要作调整,相当麻烦,并且写SQL时字段极容易写错,所以就出现了好多ORM框架,极大的提高了程序员的开发效率 。
接下来我们讲一下 XiaoFeng.Data.IQueryableX的用法 。
我们在上一节 数据库操作 中有讲过 ConnectionConfig 数据库连接配置对象,不明白的同学可以这节看 。本节继续用当前配置对象 。
建立数据库连接配置对象,FayElf.Web可为配置名称,也可以为连接串server=.;data=https://www.huyubaike.com/biancheng/testdata;uid=da;pwd=123; 后边参数为数据库驱动 。
var ConnConfig = new ConnectionConfig("FayElf.Web", DbProviderType.SqlServer);

.NET Core C#系列之XiaoFeng.Data.IQueryableX ORM框架

文章插图
.NET Core C#系列之XiaoFeng.Data.IQueryableX ORM框架

文章插图
使用 IQueryableX 可以有两种使用方式,下边模型默认就是数据库中的字段名称,也就是它们两个名称要一一对应 。如果不一样,则可以用 XiaoFeng.Column 属性去配置数据库中表字段名称,下边分别举例说明 。
通过 DataHelperX 创建一个 IQueryableX 对象 然后进行 IQueryableX 运算 去查数据库,IQueryableX和EF Core中的 IQueryable 非常类似,但运行效率比 IQueryable 快很多,并支持多数据库切换 。
1.继承了 XiaoFeng.Model.Entity 实体模型的,我们暂且叫A方案,如下边模型
/// <summary>/// 分类模型/// </summary>[Table("Category","分类", "CategoryId",ModelType.Model,"FayElf.Web",0)]public class Category : Entity<Category>{#region 构造器/// <summary>/// 无参构造器/// </summary>public Category(){}#endregion#region 属性/// <summary>/// 分类名称/// </summary>[Column(Name="Names")] public string Name { get; set; }/// <summary>/// 分类说明/// </summary>public string Description { get; set; }/// <summary>/// 分类ID/// </summary>public int CategoryId { get; set; }/// <summary>/// 父节点ID/// </summary>public int ParentId { get; set; }/// <summary>/// 添加日期/// </summary>public DateTime AddDate { get; set; }#endregion#region 方法#endregion}
.NET Core C#系列之XiaoFeng.Data.IQueryableX ORM框架

文章插图
.NET Core C#系列之XiaoFeng.Data.IQueryableX ORM框架

文章插图
2.没有继续XiaoFeng.Model.Entity实体模型的,我们暂且叫B方案,如下模型
/// <summary>/// 用户模型/// </summary>public class UserModel{#region 构造器/// <summary>/// 无参构造器/// </summary>public UserModel(){}#endregion#region 属性/// <summary>/// Id/// </summary>public long Id { get; set; }/// <summary>/// 帐号/// </summary>public string Account { get; set; }/// <summary>/// 密码/// </summary>public string Password { get; set; }/// <summary>/// 性别/// </summary>public int Sex { get; set; }/// <summary>/// 出生日期/// </summary>public DateTime BirthDay { get; set; }/// <summary>/// 添加日期/// </summary>public DateTime AddDate { get; set; }#endregion#region 方法#endregion}
.NET Core C#系列之XiaoFeng.Data.IQueryableX ORM框架

文章插图
.NET Core C#系列之XiaoFeng.Data.IQueryableX ORM框架

经验总结扩展阅读