Entity SQL Language 四 OrderBy/部分查询结果

Entity SQL就是Ado.net Entity Framework的一种查询语言,它简单灵活,不被语言版本所限制。

Order By操作

基本的OrderBy操作如下:

string entitySQL = "SELECT VALUE c FROM Customers AS c ORDER BY c.ContactName";
var query = db.CreateQuery<Customers>(entitySQL);

如果想要倒序排列的话与SQL一样,加上DESC就可以了

string entitySQL = "SELECT VALUE c FROM Customers AS c ORDER BY c.ContactName desc";
var query = db.CreateQuery<Customers>(entitySQL);

多条排序规则:

string entitySQL = "SELECT VALUE c FROM Customers AS c ORDER BY c.CompanyName ASC, c.ContactTitle DESC";
ObjectQuery<Customers> query = db.CreateQuery<Customers>(entitySQL);

返回部分查询结果

如果你要查询的数据仅是一两个字段,按以前所有的写法,将所有的字段都Select了,数据库抽了,服务器也抽了。

所以我们经常会只返回一部分结果,在Linq中我们可以通过select new {}一个新的对象来实现,在Entity SQL中我们可以通过以下方法来实现

using System.Data.Common;
//....若干行
string entitySQL = "SELECT VALUE row(c.Phone,c.Country) FROM Customers as c";
ObjectQuery<DbDataRecord> query = db.CreateQuery<DbDataRecord>(entitySQL);
query.First()["phone"];//使用方法

暂时还没有找到相关文档提出如何像使用正常类一样的使用这种部分查询结果

但是知道了如何去查询多个表的组合

在EDM中添加一个新类,不继承,而是添加属性利用组合来添加新类,比如添加了A和B两个实体为属性,而这个新建的类又叫Two

在写EntitySQL时select 命名空间.Two(a,b)...即可

posted @   重典  阅读(12686)  评论(3编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示