【问题标题】:Updating values and returning updated values in Entity framework在实体框架中更新值并返回更新后的值
【发布时间】:2011-07-27 19:57:27
【问题描述】:

我有一个表,用于在 Sql Server 2008 中实现序列。序列表只有 1 列是整数。

我想知道我是否可以做这样的事情

update dbo.MySequence set val=val+1 output inserted.val

并在不使用实体框架中的存储过程的情况下返回值。

谢谢。

【问题讨论】:

    标签: asp.net entity-framework asp.net-mvc-3 entity


    【解决方案1】:

    为什么要避免存储过程?使用存储过程是使用 EF 的一部分。您不必创建存储过程,但您仍然必须调用直接 SQL(例如使用 context.ExecuteStoreQuery)。例如在 MS SQL 上,您可以使用:

    DECLARE @val INT
    UPDATE dbo.MySequence SET @val = val = val + 1
    SELECT @val 
    

    但最好命名序列(带有附加列)。

    【讨论】:

    • 感谢@ladislav,但由于一些设计限制,存储过程不是一种选择,我想对数据库进行一次点击以获取更新的值。
    • Pure EF 在没有数据库或直接 SQL 帮助的情况下无法在单次往返中做到这一点。你用的是什么数据库?这看起来像 MSSQL 和 Oracle 序列中的典型身份列,应该直接覆盖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多