我最近在许多项目上成功使用过LINQ to SQL,但我很想转向LINQ to Entities,因为这看起来像是在微软迁移到.NET 4.0及更高版本时将获得更多投资的领域。
在这样做之前,我很想知道LINQ to SQL中缺少LINQ to SQL的内容。我的初步调查揭示了一些小麻烦。
Single()
或SingleOrDefault()
是否有人知道其他任何此类差异?
请注意,我并不是在寻找LINQ to SQL和LINQ to Entities主要功能的并排比较。我希望了解人们遇到的更微妙的差异。
答案 0 :(得分:3)
使用EF,如果将查询转换为ObjectQuery,则可以获取将生成的SQL,然后检查ToTraceString函数。当然,这并不像LINQ to SQL的实现那么容易。此外,EF没有良好的日志拦截选项,如LINQ to SQL中的Context.Log。
我正在做一些关于LINQ to SQL的演示 - > EF迁移将于下周开始使用VS Live,并将很快在thinqlinq.com上发布一系列博客。
吉姆
答案 1 :(得分:2)
Expression
滚动了自定义Expression.Invoke
(例如,谓词),则无效; EF不支持使用子表达式(LINQ-to-SQL)