Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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# 为什么包含实体框架会降低性能?_C#_Sql Server_Performance_Entity Framework_Linq To Entities - Fatal编程技术网

C# 为什么包含实体框架会降低性能?

C# 为什么包含实体框架会降低性能?,c#,sql-server,performance,entity-framework,linq-to-entities,C#,Sql Server,Performance,Entity Framework,Linq To Entities,我有以下代码: predicates.Add(PredicateBuilder.Create<Ad>(a => options.Ids.Contains(a.Model.Id))); 它还在SQL语句中生成相同的,但现在运行需要0.0820531秒 这两条SQL语句在SQL server上运行的时间基本相同。您实际上不需要PredicateBuilder,您是否使用谓词.Add(a=>options.Ids.Contains(a.Model.Id))?这比这复杂得多,有很多条

我有以下代码:

predicates.Add(PredicateBuilder.Create<Ad>(a => options.Ids.Contains(a.Model.Id)));
它还在SQL语句中生成相同的
,但现在运行需要0.0820531秒


这两条SQL语句在SQL server上运行的时间基本相同。

您实际上不需要
PredicateBuilder
,您是否使用
谓词.Add(a=>options.Ids.Contains(a.Model.Id))
?这比这复杂得多,有很多条件和内容。这就是我使用谓词生成器的原因。但是我把它隔离出来进行测试,我发布的数字仅仅通过添加包含到谓词中就增加了。你能显示完整的代码吗?如果没有更多的上下文,我们将不知道瓶颈是在生成的SQL中还是在谓词中。您正在运行哪个版本的entity framework?entity framework 6.1.2@rexcfnghk完整的源代码太长,唯一相关的部分是这个,在这个谓词列表被填充之后,我做了一个查询=query.Where(谓词);其中谓词是作为谓词.Aggregate(PredicateBuilder.Or)返回的
foreach (var id in options.Ids)
{
    predicates.Add(PredicateBuilder.Create<Ad>(a => a.Model.Id == id));
}