【问题标题】:RepoDB with SQL Server's OUTPUT clause带有 SQL Server 的 OUTPUT 子句的 RepoDB
【发布时间】:2020-07-12 11:33:47
【问题描述】:

如何使用 RepoDB 访问 OUTPUT 子句的内容,例如

INSERT INTO MyTable(Name)
OUTPUT INSERTED.ID
VALUES ('TheName')

【问题讨论】:

    标签: sql-server micro-orm


    【解决方案1】:

    使用ExecuteScalar 扩展方法,如下所示(仅当您插入单行时)。

    var result = connection.ExecuteScalar("INSERT INTO MyTable(Name) OUTPUT INSERTED.ID VALUES (@Name);", new { Name = "TheName" });
    

    或者使用类型化的结果。

    var result = connection.ExecuteScalar<int>("INSERT INTO MyTable(Name) OUTPUT INSERTED.ID VALUES (@Name);", new { Name = "TheName" });
    

    如果您要插入多行,请使用ExecuteQuery 方法。结果将是一个模型(IEnumerable&lt;T&gt; 类型)。

    【讨论】:

      【解决方案2】:

      带有OUTPUT 子句的DML 在客户端看来就像SELECT。所以看起来 ExecuteQuery 是正确的 API。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-02
        • 2021-01-23
        • 2018-09-13
        相关资源
        最近更新 更多