我有一種方法可以在我的數據庫中搜索人員。我想重構它,以便它使用哈希集來提高性能。EF中的HashSet過濾
我在下面做了一個簡化的例子(它不會編譯,只是給你一個想法)。
在我的例子中可以使用HashSet
嗎?
using (var context = new MyEntities())
{
var persons = new HashSet<PERSON>(context.PERSON);
if(!string.IsNullOrEmpty(age))
{
persons = persons.Where(p => p.age == age);
}
if(!string.IsNullOrEmpty(name))
{
persons = persons.Where(p => p.name.StartsWith(name));
}
//some similar filtering...
return persons.ToList();
}
警告!如果人員表格太大,您將耗盡內存,因爲所有人員都將加載到內存中。只需讓數據庫爲您進行過濾。如果查詢速度慢,請檢查您的查詢並使用索引。 – LostInComputer
它可以使用。你有沒有遇到任何問題? – Rezoan
@Rezoan HashSets沒有Where()方法,所以是的,我確實遇到了問題。 – Johan