【问题标题】:Load datacontext entities from another datacontext从另一个数据上下文加载数据上下文实体
【发布时间】:2016-03-05 07:14:48
【问题描述】:

我正在使用 linq to sql 来处理数据库。 我有一个 DataContext 实例,它在程序开始时加载大量实体​​并将它们提取到 ram。

现在我需要创建一个新的 DataContext 并从我的第一个 DataContext 加载实体,而不是从数据库中获取它们。 (因为从本地网络的数据库中获取实体的速度问题)

类似这样的:

DataContext _globalDC = DB._dc;
//Do some entity loading ...
DataContext _localDC = _globalDC.Clone()

现在我应该可以在不影响 _globalDC 的情况下正常使用 _localDC(搜索、插入、更新……)。

有可能吗?

【问题讨论】:

    标签: c# linq copy clone datacontext


    【解决方案1】:

    不可能。 DataContext 没有原生的Clone 方法,因此如果您要创建一个名为Clone 的扩展方法,您只能复制公共属性。但正是上下文的内部状态使它成为一个工作上下文(元数据和状态跟踪等等)。

    您最好的机会是克隆 实体对象并将它们附加到新的上下文中。

    但我认为您真正在寻找的是一种适用于 LINQ-to-SQL 的缓存解决方案。这可能是一个很好的起点:How do you implement caching in Linq to SQL?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      相关资源
      最近更新 更多