《Linq in action》学习笔记
1:不同DataContext返回不同结果的问题。因为Linq会先在内存中查询先前的记录,并修改,这点有点类似于dataset,这就可以接解释返回的差异问题了。所以可以尝试使用单例模式来实现一个DC。
2: 狂吐血,今天才知道,string实现了IEnumerable接口。
3:非泛型集合可以通过:books.cast<Book>()=>泛型集合。
4:Linq动态创建SQL(http://tomasp.net/blog/dynamic-linq-queries.aspx)
5: Linq to SQL 在调试时查看其生成的SQL 语句 的工具 (scottgu写的,而且开源,很值得学习)。
6:DataLoadOptions类,用来声明哪些对象需要跟随一起加载从而避免延迟加载带来的重复访问问题。
7:LINQ: Building an IQueryable Provider Linq to SQL 架构师之一的Matt Warren
的博客,详细讲述了如何实现自定义IQueryable提供器的办法。
8:在InsertOnSubmit或DeleteOnSubmit中是等待SubmitChanges()才执行的,所以不会反应到查询中去。
另:
1)查询视情况会在缓存中检查先前查询过的对象;
2)singleXXX方法时必先检查内部缓存;
3)不同的Context相互间是缓存是分开的,所以不同的Context返回不同的结果很正常;
9:处理只读数据时创建新Context对象将ObjectTrackingEnable设置为False并及时销毁Context对象来提高性能。
10:控制需要修改实体的作用范围,谨慎对待需要修改实体对性能的消耗。
11:修改的另一种方式,使用Context的Attach()方法,它有多个重载,用来将对象于现有Context关联,我比较喜欢这种修改方式。
12:查询表达式模式,这个东西太爽了,虽然它用的就是扩展方法,但是能自己实现编译器的实现是一种激动
作者:today4king
出处:https://www.cnblogs.com/jinzhao/archive/2009/10/20/1586826.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架