相关疑难解决方法(0)

11
推荐指数
1
解决办法
9686
查看次数

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);
}
Run Code Online (Sandbox Code Playgroud)

这将实际运行并返回一个 int 。int 是什么意思?文档只是

执行命令后数据库返回的结果。

我做了几个测试,看起来如果修改了一行,则为 1;如果没有任何更改,则为 0。返回值是修改的行数吗?

c# sql sql-server entity-framework

3
推荐指数
1
解决办法
4359
查看次数