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)...即可