簡體   English   中英

Database.ExecuteSqlCommand的返回值是多少?

[英]What is the return value of Database.ExecuteSqlCommand?

稍微修改這個問題的答案,假設我運行以下代碼:

public int SaveOrUpdate(MyEntity entity)
{
    var sql =  @"MERGE INTO MyEntity
                USING 
                (
                   SELECT   @id as Id
                            @myField AS MyField
                ) AS entity
                ON  MyEntity.Id = entity.Id
                WHEN MATCHED THEN
                    UPDATE 
                    SET     Id = @id
                            MyField = @myField
                WHEN NOT MATCHED THEN
                    INSERT (Id, MyField)
                    VALUES (@Id, @myField);"

    object[] parameters = {
        new SqlParameter("@id", entity.Id),
        new SqlParameter("@myField", entity.myField)
    };
    return context.Database.ExecuteSqlCommand(sql, parameters);
}

這實際上將運行並返回一個int。 int是什么意思? 文件只是說

執行命令后,數據庫返回的結果。

我做了幾次測試,如果修改了一行,它看起來是1,如果沒有改變,它看起來是0。 返回值是否修改了行數?

對於大多數數據庫,這意味着該命令影響的行數。 但是我認為,上帝禁止這種事情存在,數據庫供應商可以自由退還任何東西,然后您需要查看特定數據庫的文檔中數字的含義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM