Linq to entities 将T-SQL转换为Linq

Linq to entities 将T-SQL转换为Linq,linq-to-entities,Linq To Entities,我是LINQ新手,被要求将我们现有的遗留解决方案更新到EF4.1中的实体LINQ EF模型在这里 我可以处理基本的查询,但是扩展的查询,例如下面的查询,会引起很大的麻烦。我将非常感谢您在将此转换为Linq Return Me.ObjectContext.*.*时提供的任何建议 SQL查询非常复杂,有很多内部联接和外部联接。这个答案并没有考虑到这一切。然而,像实体框架这样的LINQ提供者的优点是,它们可以直接从模型中暗示连接关系。我每天都写LINQ查询,有时候它们会变得非常复杂,但我几乎不需要在

我是LINQ新手,被要求将我们现有的遗留解决方案更新到EF4.1中的实体LINQ

EF模型在这里

我可以处理基本的查询,但是扩展的查询,例如下面的查询,会引起很大的麻烦。我将非常感谢您在将此转换为Linq Return Me.ObjectContext.*.*时提供的任何建议


SQL查询非常复杂,有很多内部联接和外部联接。这个答案并没有考虑到这一切。然而,像实体框架这样的LINQ提供者的优点是,它们可以直接从模型中暗示连接关系。我每天都写LINQ查询,有时候它们会变得非常复杂,但我几乎不需要在LINQ查询中进行显式连接。当您拥有设计数据库模型和实体框架模型时,您可以简单地将所有内容“点”在一起,而无需使用LINQ join操作符

说够了。您可以选择以下查询作为起点。它从数据库中获取给定数据范围内以及给定故障区域的所有故障。您可以扩展它以返回您所需的内容,但我希望这有助于作为起点

var faultAreas = new[] { 28, 72, 78 };
var minDate = new DateTime(2011, 04, 01);
var maxDate = DateTime.Now;

var failures =    
    from failure in context.InspectionFailures
    where faultAreas.Contains(failure.FaultAreaID)
    where failure.CreatedDate >= minDate
    where failure.CreatedDate <= maxDate
    select failure;

祝你好运。

谢谢你的反馈。由于failures表基本上有一个查找ID列表,因此从整数查找返回描述的最佳实践是什么?然后,我将结果数据加载到一个IQueryable POCOThanks中。通过扩展From子句的数量,然后在Select中指定我想要的内容,它已经起作用了。
var faultAreas = new[] { 28, 72, 78 };
var minDate = new DateTime(2011, 04, 01);
var maxDate = DateTime.Now;

var failures =    
    from failure in context.InspectionFailures
    where faultAreas.Contains(failure.FaultAreaID)
    where failure.CreatedDate >= minDate
    where failure.CreatedDate <= maxDate
    select failure;