【问题标题】:Cannot update a single field using Linq to Sql无法使用 Linq to Sql 更新单个字段
【发布时间】:2010-04-25 08:40:02
【问题描述】:

我很难尝试更新单个字段而不必在保存之前检索整个记录。

例如,在我的 Web 应用程序中,我有一个用于对象名称和描述字段的就地编辑器。编辑任一字段后,它会将新字段(带有对象的 ID 值)发送到 Web 服务器。我想要的是网络服务器获取该值和 ID,并且只更新一个字段。谷歌只有两种方法告诉我这样做:

1) 当我得到我要更改的值、值和ID,从数据库中检索记录,更新c#对象中的字段,然后将其发送回服务器。我不喜欢这种方法,因为它不仅包含一个完全不必要的数据库读取调用(由于我的架构方式,它包括两个表)。

2) 将所有字段(除了主键)的 UpdateCheck 设置为 UpdateCheck.Never。由于我在 Linq to Sql 和我的 Entity/ViewModel 层之间的映射层,这对我不起作用(我认为)。当我将实体转换为 linq to sql db 对象时,无论 UpdateCheck 设置如何,它似乎都在更新这些字段。这可能只是因为整数,因为不设置 int 意味着它为零(不,我不能使用 int?代替)。

我还有其他选择吗?

【问题讨论】:

    标签: asp.net linq-to-sql


    【解决方案1】:

    【讨论】:

    • 使用任何你使用的 ORM 技术,你都会处于这个位置。
    • 是的。存储过程是您唯一的选择。 L2S 的本质是需要整个对象在内存中才能保存。但是,当首先检索对象的开销太大时,我只会退回到存储过程。 (一如既往,不要过早优化)。
    猜你喜欢
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多