搜索关键导航属性是O(1)?

时间:2018-06-12 14:30:50

标签: c# hashset poco

我有实体POCO与实体freamwork一起使用。这个实体是由EF创建的,我发现作为集合的属性是ICollection,而创建的对象是一个hashset。

因此,如果我想搜索实体,我可以这样做:

MyPoco.MyProperty.FirstOrDefault(x => x == MyPocoToSearch);

这是一个O(1)复合体,因为它是hashset的比较对象。

但是,很多时候对象可能不同,因为一个对象来自客户端层而另一个对象来自dbContext,所以如果我使用该对象进行比较,我会得到错误,因为它们是不同的对象。所以我需要通过ID搜索,类似的东西:

MyPoco.MyProperty.FirstOrDefault(x => x.ID == MyClientPoco.ID);

但在这种情况下,我正在搜索属性,所以我猜它不是O(1)。我需要实现ICompare接口吗?

感谢。

0 个答案:

没有答案