linq to sql =>; ADO.NET Entity Framework
2008-08-13 21:33 无常 阅读(2253) 评论(5) 编辑 收藏 举报花了一天的时间把项目从linq2sql转到ADO.NET Entity Framework。
此项目bs部分工程量不算多,复杂的功能都做在cs部分上,bs只负责基础数据的维护和报表统计,
其实用linq2sql也可以满足了,但是linq2sql designer用得实在太不爽了,表少的时候还能应付,现在表增加到70几个了,找个表得找半天,linq2sql desinger也不提供个搜索功能:(
前天装好vs2008sp1,试了一下EF designer,增加了Overview窗口和Model browser,就为了这个也要换到EF
转换过程还算顺利,
1.把代码中linq2sql的DataContext换成EF的ObjectContext,这步可以用find/replace完成大部分工作
2.linq2sql创建新记录时是用DataContext.表名s.InsertOnSubmint(obj),而ef是ObjectContext.AddTo表名(object),提交变更也从DataContext.SubmitChange()改成Object.SaveChanges()
3. DataContext.表名s => ObjectContext.表名,这部分可以replace完成
4.aspx文件中用到的LinqDataSource全部得换成EntitiDataSource,这里只有手工一个一个替换了,没法偷懒。LinqDataSource的查询条件需要手工换成Entity SQL,这部分工作是大头~ 还得学一下Entity SQL。
5.如果linq2sql代码用到[].Contains(xx)运算的,参考一下这里的方法解决
6.如果linq2sql中访问数据库时有嵌套访问数据库的,如下面这段代码,在linq2sql中没问题。
如果按流程转到EF的话,就会遇到异常
这是因为EF中foreach读取数据时是采用DataReader在线读取方式,而linq2sql则是采取类似DataSet的先把所有数据从数据库中取出到内存的方式,
所以在EF中需要把外层循环改成
foreach (var depart in ctx.Department.ToList() )
转移工作基本就这些了
接下来要实下EntitySQL了~
【推荐】国内首个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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2007-08-13 Visual Studio .NET使用技巧手册[转]