我目前有以下类型的代码:
List<Product> products = Db.GetAllProducts(database);
foreach (var part in ListOfParts)
{
if (part.ProductId != null)
{
if (products.Where(o => o.Id == part.ProductId).FirstOrDefault() == null)
{ ...}
你可以看到我做了很多
produces.Where(o => o.Id == ...).FirstOrDefault()
。
在使用表(通用数据库技术)时,可以添加索引以加快搜索速度。
System.Generic.Collections.List
类或System.Generic.Collections
命名空间中的另一个类也存在这样的事情吗?
这看起来像实体框架。如果是这样,你的数据库有这个索引!
不要使用像
GetAllXX()
这样的方法将其加载到列表中。获取 IQueryable 并让 EF 构建查询,这样数据库就可以高效。这不仅可以让您使用索引,还可以节省计算机和数据库服务器上的内存,并节省通过网络在它们之间传输数据的时间。