繁体   English   中英

C#实体框架.Find(id)方法的时间复杂度是多少

[英]C# Entity Framework what is the time complexity of .Find(id) method

.Find(id)方法的时间复杂度是多少? 遍历id列表并使用.Find()是一个坏主意吗?

还可以在同一查询中“查找”多个ID吗?

foreach (var id in idList)
{
    var task = _model.Tasks.Find(id);
    Save(task,task.id);
}

最好的方法是什么?

根据您使用元素的方式(以及元素的数量),可能会发现一次加载所有实体更好:

// given List<int> idList
var tasks = _model.Tasks.Where(x => idList.Contains(x.id))

foreach (var task in tasks)
{
    Save(task, task.id);
}

请注意,“ Find Where使用主键执行“位置”,因此,如果实体没有主键或具有复合键,则必须小心。 您也不会得到键类型的任何编译时安全性(即,您可以将string传递给具有int PK的实体,并仅在运行时进行查找)。
当然,如果列表足够大,您可能会通过一次带走所有数据而遇到OutOfMemoryException

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM