繁体   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