【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化

本文介绍了Newlife.XCode的查询功能和数据初始化方法。查询语法灵活,支持多字段条件,包括FindCount、FindAllWithCache等。数据库初始化可通过实体类静态构造函数InitData()自动执行,简化了部署时的数据初始化工作。源码下载链接提供。
摘要由CSDN通过智能技术生成
        本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html

Newlife XCode组件相关文章目录:http://www.cnblogs.com/asxinyu/p/4329747.html

1.前言

声明:此Newlife.XCode非Mac的XCode,避免误会。

1.QQ群:1600800

2.博客论坛 : NewlifeX论坛 (同时也是.Net Micro Framework/ApolloOS的交流论坛,帮助软件开发者使用C#快速进入嵌入式开发领域)
             大石头博客      Asxinyu博客

  使用XCode已经3年了,谈不上精通,都是些基础功能使用,以前源码啃过很多次,了解过部分功能的实现细节,但终归是要应用的,当没有时间时,了解使用就可以了,所以现在更多关注业务相关的东西,数据库操作,XCode已经很完善了。本文就对这几年应用过程的一些问题,以及很多人经常问起来的问题进行一个总结。今天就介绍2个主要的,比较常见的使用:表达式查询,实体数据初始化。

  我们将在下一篇博客中重点介绍更加重量级的分库分表功能,以及通用配置辅助类的使用。敬请关注。

   如果文章或者资源对您有用,请“推荐”和关注,接下来还有很多.NET平台关于机器学习、彩票分析平台和预测的文章和资源待发表。

      本文原始地址http://www.cnblogs.com/asxinyu/p/4248281.html 

2.简洁优雅的查询

  XCode对查询语法和灵活性是我见过的ORM中最优雅的,最简单体贴的。XCode由于支持多种数据库,并且效率很高的原因就是在这些数据库核心操作的背后有许多精巧的设计,其支持的查询就是XCode灵活强大的表现之一,每天写着重复的sql,调试,拼接参数,真的很累,那么看看XCode中的查询,真的是赏心悦目,是一种享受吧。首先对XCode的查询语法进行一个简单的总结和描述:

1) XCode的查询很灵活,可以针对单个字段,也可以针对多个字段;例如:    

1 var model1 = Find(_.Name, "中国");
2 //下面2个结果是一样的,用的方法不一样
3 var model2 = Find(new String[] { _.Name, _.OnceName }, new object[] {
   "中国","China" });
4 var model3 = Find(_.Name == "中国" & _.OnceName == "China");
5 //同理看一个FindAll的使用
6 var modelList1 = FindAll(_.IsAsia, true);//只针对IsAsia字段
7 //FindAll的最常见使用:5个参数的,第一个是条件表达式,第二个是排序字段(ComanyID),第三个是选择的字段,null代表选择所有
8 //startIndex参数,代表起始行,默认都是从0开始,最后一个表示放回的数据行数,0代表所有行,可以只取前10。
9 var modelList2 = FindAll(_.IsAsia == true & _.IsAuthority == true, _.ComanyID, null, 0, 0);

 2) XCode的查询是实体基类Entity<TEntity>封装好的静态方法,里面包含很多东西,建议熟练使用后的朋友,好好看一看,对理解XCode,更好的使用都有很大的好处。

3) XCode中查询满足条件的记录数有专门的FindCount方法;其方法原型和FindAll类似。

4) XCode有着非常完善的缓存体系,实体类是直接可以进行缓存设置和查询的,方法是FindAllWithCache; Meta.Cache.Entities中也有缓存数据,可以直接查询。例如: 

1 // 实体缓存
2 Meta.Cache.Entities.FindAll(_.EventId, eventid);
3 Meta.Cache.Entities.Find(_.Id, id);
4 //单对象缓存
5 return Meta.SingleCache[id];
6 FindAllWithCache(_.EventName, "西甲");

 5) XCode的实体操作接口IEntityOperate中也有相对于的查询方法,使用与单个实体的Find和FindAll的使用基本相同。例如下面一段代码(2年前使用XCode迁移数据写的,非常好理解,也非常好的完成了迁移工作)。里面在对表进行处理的时候,就使用了IEntityOperate来操作,非常方便。其使用和原理可以看源码,和博客的其他文章。 

 1 /// <summary&
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值