【问题标题】:Flexiable update in Linq To SqlLinq To Sql 中的灵活更新
【发布时间】:2010-08-26 11:56:16
【问题描述】:

使用 Linq To Sql/Entities 我们有足够的灵活性来编写选择查询

但是更新查询呢。

如果我需要做一些简单的事情怎么办:

UPDATE suppliers
SET supplier_name = (SELECT customers.name FROM customers WHERE customers.customer_id = suppliers.supplier_id)

使用 Linq to Sql 我需要运行大量更新查询才能完成。 首先我需要选择我需要更新的实体,然后我需要更新每个实体,接缝非常慢。

有什么方法可以让它变得简单,或者在这种情况下只有存储过程映射可能会有所帮助?

【问题讨论】:

  • 我还没有编辑问题的能力,所以我将其作为建议提供...如果您将问题标题更新为“Linq to SQL Batch Updates”之类的内容,您可能会得到更多答案。 :)

标签: linq-to-sql linq-to-entities


【解决方案1】:

您可能想查看PLINQO。它为 LINQ to SQL 添加了批量更新/删除以及更多内容。

【讨论】:

    【解决方案2】:

    对于像这样的批处理操作,我会直接使用 SQL。在 LINQ to SQL 中,您可以为此使用 DataContext.ExecuteCommand()。例如:

    db.ExecuteCommand("UPDATE suppliers SET supplier_name = (SELECT customers.name FROM customers WHERE customers.customer_id = suppliers.supplier_id)");
    

    如果您认为内联 SQL 是邪恶的,请查看this post by Terry Aney,了解如何在 LINQ to SQL 中启用批量更新和删除。我没有这方面的经验,但它看起来很有趣。

    【讨论】:

    • 内联 sql 是邪恶的。没有用于更新的 Linq 语法是非常糟糕的。我正在寻找类似 @​​987654323@ 的东西,但看起来对于 Linq to SQL 它不存在,设计不允许进行这样的操作..
    • 我用另一个可能的解决方案的链接更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    相关资源
    最近更新 更多