【发布时间】:2018-08-25 22:19:31
【问题描述】:
我正在使用 FluentAssertions 使用 Should().BeEquivalentTo() 比较两个对象,其中一个对象是 EF 动态代理。但是,5.0.0 中ShouldBeEquivalentTo 和ShouldAllBeEquivalentTo (#593) 的统一似乎破坏了使用RespectingRuntimeTypes 时的功能。除非我为对象图中的每个类型显式添加ComparingByMembers,否则不再比较已声明类型的派生类型的属性成员。有没有办法使用其他设置解决这个问题?
【问题讨论】:
-
这些类型会覆盖“Equals”吗?
-
@DennisDoomen No.
-
你读过这个吗? continuousimprover.com/2018/02/…
-
@DennisDomen 我确实这样做了,我阅读了“迈向统一 API”,然后直接跳到“升级提示”(将其视为“TLDR”部分),期望这会突出任何突破变化。我今天早上发现基类确实错误地实现了
Equals,删除它可以解决问题。感谢您的回复,但我建议您在“升级提示”部分(在“对 BeEquivalentTo 的更改”下)添加一个额外的项目符号,以确保任何Equals实现符合它应该的引用类型值语义原则到? -
好主意。将此添加到原始博客中。
标签: c# entity-framework dynamic-proxy fluent-assertions