相关疑难解决方法(0)

从LINQ迁移到SQL到Entity Framework 4.0 - 提示,文档等

我在.NET 3.5 SP1中尝试了EF,我是众多感到沮丧的人之一,并决定学习LINQ to SQL.现在我知道EF是"选择"的前进路径,加上EF 4.0有一些令人兴奋的新功能,我想将我的应用程序迁移到EF 4.0.

任何人都可以建议任何专门针对4.0 L2S迁移的良好资源吗?注意:我可以在.NET 3.5上找到大量与从L2S迁移到EF相关的博客和文章,但我觉得其中很多很明显过时并且对使用4.0的人没有帮助.

我真的很喜欢我能得到的那么深的,引擎盖下的东西; 我想真的离开,感觉我知道 EF 4.0我目前知道L2S 3.5的方式.

TIA!

entity-framework .net-4.0 linq-to-sql entity-framework-4

17
推荐指数
1
解决办法
6331
查看次数

为什么EF 4.1不支持复杂查询以及linq-to-sql?

我正在将内部Web应用程序从Linq-To-Sql转换为现有数据库中的EF CodeFirst.我最近越来越多地对Linq-To-Sql的局限性感到恼火,并且在更新一个交织在一起的数据库表之后不得不更新edmx,这最终让我感到很沮丧,无法切换到EF.

但是,我遇到了几种情况,使用linq和Linq-To-Sql比最新的Entity Framework更强大,我想知道是否有人知道它的推理?其中大部分似乎都涉及转型.例如,以下查询适用于L2S但不适用于EF:

        var client = (from c in _context.Clients
                      where c.id == id
                      select ClientViewModel.ConvertFromEntity(c)).First();
Run Code Online (Sandbox Code Playgroud)

在L2S中,这正确地从数据库中检索客户端并将其转换为ClientViewModel类型,但在EF中,这种异常表示Linq to Entities无法识别该方法(这在我编写它时是有意义的.

为了让这个在EF工作,我必须selectFirst()通话后移动到.

另一个例子是我的查询来检索客户端列表.在我的查询中,我将其转换为匿名结构,以转换为JSON:

        var clients = (from c in _context.Clients
                       orderby c.name ascending
                       select new
                       {
                           id = c.id,
                           name = c.name,
                           versionString = Utils.GetVersionString(c.ProdVersion),
                           versionName = c.ProdVersion.name,
                           date = c.prod_deploy_date.ToString()
                       })
                       .ToList();
Run Code Online (Sandbox Code Playgroud)

我的Utils.GetVersionString()方法不仅导致EF中不受支持的方法异常,c.prod_deploy_date.ToString()原因也是如此,这很简单DateTime.像以前一样,为了解决它,我必须在之后进行选择转换ToList().


编辑:我刚遇到的另一个案例是,EF无法处理比较L2S对其没有任何问题的实体的子句.例如查询

context.TfsWorkItemTags.Where(x => x.TfsWorkItem == TfsWorkItemEntity).ToList()
Run Code Online (Sandbox Code Playgroud)

抛出一个异常而不是我必须这样做

context.TfsWorkItemTags.Where(x => x.TfsWorkItem.id …
Run Code Online (Sandbox Code Playgroud)

entity-framework linq-to-sql entity-framework-4.1

9
推荐指数
2
解决办法
1999
查看次数