Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq 2实体:基于查询结果的子查询_C#_Entity Framework_Linq_Subquery - Fatal编程技术网

C# Linq 2实体:基于查询结果的子查询

C# Linq 2实体:基于查询结果的子查询,c#,entity-framework,linq,subquery,C#,Entity Framework,Linq,Subquery,由于复杂查询的性能原因,我从Linq 2 SQL迁移到Linq 2实体。 让一切正常运转有点令人沮丧 在L2SQL中,我可以毫无问题地运行子查询。 现在我明白了,在L2E中,我必须将子查询放在查询之外 这通常没有问题,但是如果子查询依赖于查询,我如何运行查询 例如: 我想获取文档的状态,但为此我需要当前的documentID var query = from Dok in dbContext.Dokumente orderby Dok.DokumentID descending

由于复杂查询的性能原因,我从Linq 2 SQL迁移到Linq 2实体。 让一切正常运转有点令人沮丧

在L2SQL中,我可以毫无问题地运行子查询。 现在我明白了,在L2E中,我必须将子查询放在查询之外

这通常没有问题,但是如果子查询依赖于查询,我如何运行查询

例如: 我想获取文档的状态,但为此我需要当前的documentID

var query = from Dok in dbContext.Dokumente
    orderby Dok.DokumentID descending
    select new ClassDok() {
        _Nr = Dok.Dokumentnr,
        _StatusID = dbContext.Database.SqlQuery<int>("GetDokStatusID", Dok.DokumentID).Single()
    };
var query=来自dbContext.Dokumente中的Dok
orderby Dok.DokumentID递减
选择newclassdok(){
_Nr=Dok.Dokumentnr,
_StatusID=dbContext.Database.SqlQuery(“GetDokStatusID”,Dok.DokumentID).Single()
};
我已经试过了
dbContext.Database.SqlQuery(“GetDokStatusID”,Dok.DokumentID).Single()

转换为方法并返回整数,但它不起作用。

无法避免存储过程
GetDokStatusID
?在获得文档结果后,最好通过一个查询获取所有状态,然后将状态与文档合并。否则,您将使用子查询对SQL server进行DDOS攻击。您遇到了什么问题?谢谢@Vladimir,我通过删除存储过程并将逻辑放在后面解决了它_StatusID=无法避免存储过程
GetDokStatusID
?在获得文档结果后,最好通过一个查询获取所有状态,然后将状态与文档合并。否则,您将使用子查询对SQL server进行DDOS攻击。您遇到了什么问题?谢谢@Vladimir,我通过删除存储过程并将逻辑放在\u StatusID后面解决了这个问题=