我有一个使用Entity Framework 6的大型代码库。几乎我所有的实体都有一个 ID 作为主要列。
某些实体将被长时间缓存,因此并非所有实体都来自同一DbContext。
因此,我无法真正比较引用,而基础数据库行将是同一'逻辑事物'。
现在我正在考虑将state_selected
,Equals
,==
,GetHashCode()
等覆盖到 ID 列上,因此我可以:
!=
而不是检查ID 并不要忘记进行空检查( actor1 == actor2 )
而不是对弱类型ID进行操作我认为从理论上讲,这可以使代码更具可读性和静态类型。
由于这是一个非常庞大的代码库,因此我对我没有考虑到的任何副作用深有感触,并且在代码投入生产时会让我感到惊讶。