C#中关于表达式与委托在EF中的不同表现总结
2024-10-12 11:13:18
Func<Invoice, bool> func = x => x.State == InvoiceState.Created;
Expression<Func<Invoice, bool>> expression = x => x.State == InvoiceState.Created; using (var db = new CrmDbContext())
{
var q1 = db.Invoices.Where(func); //全部查询出来后筛选
var q2 = db.Invoices.Where(expression); //直接延迟到Count时执行 var query = db.Invoices.AsQueryable();
var qq1 = query.Where(func);//全部查询出来后筛选
var qq2 = query.Where(expression); //直接延迟到Count时执行 Console.WriteLine($"q1:{q1.Count()}");
Console.WriteLine($"q2:{q2.Count()}");
Console.WriteLine($"qq1:{qq1.Count()}");
Console.WriteLine($"qq2:{qq2.Count()}");
}
看到上面的不同表现结果,知道该怎么写了吧!
简单来说:委托的查询是针对一个(已存在的)集合的,而表达式是用来表述条件。
最新文章
- OracleConnection is obsolete
- Asterisk manager API(AMI)文档(中文版)
- vs快捷键
- 支撑双十一的,不仅仅是AliSQL,也不仅仅是Oceanbase
- undefined reference to libiconv_open&#39;
- 队列中使用Database Driver
- AIX配置时间服务器(NTP)
- 设置配置文件信息时的classpath
- poj3177(边双连通分量+缩点)
- ISAPI_Rewrite 3 伪静态软件
- ubuntu tree 查看目录结构
- C# 中ref与out关键字区别
- OpenStack控制节点上搭建Q版keystone服务(step3)
- JS prototype chaining(原型链)整理中&#183;&#183;&#183;&#183;&#183;&#183;
- 在线HTML编辑器KindEditor
- DataTable的一个简单的扩展
- Linux-(rcp,scp)
- leetcode ---双指针+滑动窗体
- LOJ #6282. 数列分块入门 6-分块(单点插入、单点查询、数据随机生成)
- CSS:Tutorial three