C# Linq 2实体:基于查询结果的子查询
由于复杂查询的性能原因,我从Linq 2 SQL迁移到Linq 2实体。 让一切正常运转有点令人沮丧 在L2SQL中,我可以毫无问题地运行子查询。 现在我明白了,在L2E中,我必须将子查询放在查询之外 这通常没有问题,但是如果子查询依赖于查询,我如何运行查询 例如: 我想获取文档的状态,但为此我需要当前的documentIDC# 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
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后面解决了这个问题=