【问题标题】:Linq to SQL - Can you submit changes for a single object?Linq to SQL - 您可以提交单个对象的更改吗?
【发布时间】:2008-10-19 03:28:31
【问题描述】:

Linq to SQL 是否支持提交对单个对象的更改? SubmitChanges 方法将所有更改发送到数据库,但是如果我与错误日志表相关联并且只想将记录保存到错误日志中而不将所有更改提交到我的其他表怎么办?

示例:
对象操作(ID、名称、类型、描述、结果)
对象 ActionError (ActionID, ErrNum, ErrMsg)

Action 和 ActionErrors 之间存在按 ID 的关联。在处理操作时,发生了一些我想记录错误的事情。我可以将一个新的 ActionError 对象添加到 ActionErrors 的集合中,但是如何在不对 Action 进行任何更改的情况下仅将这些对象发送到数据库?在 Linq to SQL 中是否只需要使用单独的数据上下文来完成此任务?

【问题讨论】:

  • 您对此有何解决方案?如果您有几个要更新的对象,多数据上下文方法可以工作,但是如果您有数千个对象并且您想一次选择其中一个进行更新怎么办?我在 CMS 的链接中找不到很好的答案。有什么想法或见解?
  • 这只是您必须解决的问题。我相信 L2S 是围绕 ActiveRecord 模式设计的,这基本上意味着您一次只有一个活动记录,并且可以提交更改。您可能想阅读链接在最佳答案中的 Rick Strahl 的帖子。

标签: .net linq-to-sql


【解决方案1】:

Here 是一篇关于如何管理 Linq to SQL DataContext 生命周期的好文章,可能对您有所帮助...

【讨论】:

  • 我应该知道 Rick Strahl 会报道这一点。谢谢!
  • 根据我的阅读,如果您需要一次更新一个对象,您应该避开 linq-to-sql。这是你的决定吗,杰夫,还是我错过了其他解决方案?
【解决方案2】:

您可以使用带有 RefreshMode.OverwriteCurrentValues 的 DataContext 上的 Refresh() 方法刷新更改的实体集合,然后更新您的 ActionError 并提交更改。

FWIW。我还没有这样做,但是查看文档是我会尝试的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多