我有实体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接口吗?
感谢。