【问题标题】:Adding related data with multiple LINQ to SQL DataContexts使用多个 LINQ to SQL DataContexts 添加相关数据
【发布时间】:2010-09-28 12:22:52
【问题描述】:

我正在使用 Linq to SQL 开发一个桌面应用程序。从我收集到的信息来看,最好让 DataContext 对象保持短暂的生命,但我遇到了以下难题:

我的应用程序有很多我想在客户端缓存的查找类型数据。我想要缓存它的原因是因为我不想在执行大型 ETL 类型操作时为需要插入的每个子记录查找适当的父记录。

当我对数据库执行更新时,我需要将我更新的记录与此查找数据相关联。现在,使用单个全局 DataContext,这很容易:我只需将新的子记录添加到查找对象的关系集合中,然后点击 SubmitChanges()。

但是,如果我从最初从中获取数据的数据上下文中创建新的 DataContext,我如何才能最好地管理更新这些相关数据?我不能将缓存的数据与我的新 DataContext 一起使用,因为它来自不同的数据。

这一切都非常令人困惑 - 我应该放弃并学习实体框架吗?

非常感谢。

【问题讨论】:

    标签: .net sql-server linq linq-to-sql


    【解决方案1】:

    您可以使用 detach/attach 删除与您检索对象的数据上下文的关联,然后在准备更新时将其连接到新的数据上下文。

    更多信息here。

    您可以做的另一件事是查看nHibernate 并使用Linq for nHibernate。

    【讨论】:

      【解决方案2】:

      在断开数据连接时,实体框架往往会更困难与您抗衡。您应该能够相当轻松地使用带有附加/分离的 LINQ-to-SQL。当然,你并不总是需要设置一个reference来关联数据;您还可以选择设置相关的 id - 即您通常有一对属性:

      • SomethingId(外键标识值)
      • 某事(参考)

      您也许可以只设置 Id 而无需触及参考。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-01
        • 1970-01-01
        • 2012-08-19
        • 1970-01-01
        • 2010-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多