我非常有信心我有正确的想法,但我需要确定并且无法提出我自己需要的确认。
我正在使用带有SQL的Entity Framework作为我在C#中的后端查询数据库。这里“测试”是我的表的名称。
let url = "https://graph.facebook.com/v2.6/<USER_ID>?fields=first_name,last_name,profile_pic&access_token=<PAGE_ACCESS_TOKEN>";
facebook.api(url, function(err, data){
if(err){
console.error(err);
res.sendStatus(502);
res.end();
}
else{
//Do some stuff with the data object
}
});
现在我需要添加一个where子句,但是这个where子句是可选的并由用户控制。所以我添加了以下内容:
var query1 = from t in testing
select t;
这只是将要应用的一个“where”子句。会有更多。
根据我的理解,只要我不在列表中进行枚举,就不会以这种方式执行,而不是执行完全不同的查询:
bool trivialOption = true;
if(trivialOption)
{
query1 = query1.Where(t => t.TrivialProperty == true);
}
当输入其他可选的where子句时,这将非常快速地变得非常混乱。
我是否正确地说懒惰/延迟加载允许我在没有任何性能命中的情况下执行第一个选项?
答案 0 :(得分:4)
我是否正确地说懒惰/延迟加载允许我这样做 没有任何性能命中的第一个选项?
是。那是正确的。
只要您不使用ToList
,ToArray
等来迭代您的查询,您就不会进行任何性能点击。
您可能需要阅读:LINQ and Deferred Execution