gpt4 book ai didi

asp.net - Linq to SQL - 跨回发保留 DataContext?

转载 作者:行者123 更新时间:2023-12-02 04:07:31 25 4
gpt4 key购买 nike

我读到Rick Strahl's在 Stackoverflow 上发布有关 DataContext 生命周期管理以及其他一些相关问题的文章。如果它们包含了我问题的答案,那我一定错过了。

我通常遵循原子方法,并在需要时为工作单元实例化 DataContext,然后将其处置。这种方法效果很好,直到我遇到了一个复杂页面的场景,该页面包含一个带有多个网格和弹出面板的多 View 控件,这些网格和弹出面板都代表一个工作单元。数据位于内存中(我实际上将根对象填充到 session 中,以便整个层次结构在回发中可用)。显然,当用户单击“保存”时,DataContext 早已消失。

Tom Brune's comment一开始引起了我的注意,因为它看起来是一种非常优雅的方法 - 使用反射“润湿”对象的新副本并使用新的 DataContext 更新数据库。然而,Rick's concerns关于这种方法是有效的,并且由于我的数据结构复杂且分层,我认为我不会尝试这个。

因此,据我所知,我几乎没有什么选择。

  • 使用 Rick 的建议来反序列化/序列化对象并将其重新附加到新上下文
  • 手动编写比较和更新对象的新副本的逻辑

我应该遵循哪一个,是否有第三种选择,即我可以在回发之间保留 DataContext 吗?如果这是可行的,则需要最少的编码,因为我的根对象有大约十几个子对象。

最佳答案

我的建议是使用您的第一个要点并反序列化/序列化对象,然后将其重新附加到新的上下文。

我过去曾使用过这种方法,它对我来说效果很好。我认为您会遇到更少的问题,并且 future 的实现会更容易。

关于asp.net - Linq to SQL - 跨回发保留 DataContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1486863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com