猿问

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。返回值是否修改了行数?


慕斯王
浏览 411回答 1
1回答

一只甜甜圈

对于大多数数据库,这意味着该命令影响的行数。但是我认为,上帝禁止这样的事情存在,数据库供应商可以自由退还任何东西,然后您需要查看特定数据库的文档中数字的含义。
随时随地看视频慕课网APP
我要回答