有什么方法可以知道 EF4 当前是否处于水合自我跟踪实体 (STE) 的过程中
我需要在 EF 4 STE 公共 getter 和 setter 中执行一些自定义逻辑。但是,我只希望在 EF 当前未对实体进行水合时执行此自定义逻辑。
是否有任何内置标志、状态或对象状态可以检查以确定 EF 当前是否正在代表我水合 STE 实体?
我没有进行延迟加载,因此我们一次性执行所有数据加载。我希望我不必更改实体 T4 模板来添加基础设施来自己跟踪这些东西。
谢谢, 内特
I have the need to perform some custom logic in my EF 4 STE public getters and setters. However, I only want this custom logic to execute if EF is not currently hydrating an entity.
Are there any built in flags, statuses or object states that can be checked to determine if EF is currently in the act of hydrating a STE entity on my behalf?
I am not doing lazy loading, so we perform all our data loading in one shot. I'm hoping I don't have to change the Entity T4 templates to add the infrastructure to track this stuff myself.
Thanks,
Nate
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,没有这样的标志,但您可以尝试这样做:
唯一的问题是这些方法将成为 STE 公共接口的一部分。为了避免这种情况,您可以在 ObjectContext 中实现这些方法并使用标志访问 STE 的内部属性。仅当 STE 和 ObjectContext 位于同一程序集中或使用 InternalsVisibleTo 时,这才可能实现。
No there is no such flag but you can try to do it this way:
The only problem is that these methods will be part of STE's public interface. To avoid this you can implement these methods in ObjectContext and access STE's internal property with flag. This is possible only when STEs and ObjectContext are in the same assembly or InternalsVisibleTo is used.