Entity Framework: Database.ExecuteSqlCommand Method

后端 未结 1 1650
死守一世寂寞
死守一世寂寞 2021-01-05 01:34

So, I have a basic update statement I am running in my MVC 4 app. I am calling it like so (SQL Server 2008 R2, Entity Framework 5.0):

var requestData = reque         


        
相关标签:
1条回答
  • 2021-01-05 02:26

    The command completes successfully, but sometimes requestData returns 1, sometimes it returns 2. I cannot find any documentation or explanation of what these return values mean.

    ExecuteSqlCommand will return the number of rows affected by your UPDATE statement.


    Testing:

    //Update ID 2
    using (var context = new Test2Context())
    {
        var items = context.MyTestClasses.Where(x => x.Id == 2).Count();
        var rowsAffected = context.Database.ExecuteSqlCommand("UPDATE MyTestClasses SET Name = 'Test2' WHERE Id = 2");
        Debug.WriteLine("--First Test--");
        Debug.WriteLine("items: {0}", items);
        Debug.WriteLine("rowsAffected: {0}", rowsAffected);
    }
    
    //Update all
    using (var context = new Test2Context())
    {
        var items = context.MyTestClasses.Count();
        var rowsAffected = context.Database.ExecuteSqlCommand("UPDATE MyTestClasses SET Name = 'Updated'");
        Debug.WriteLine("--Second Test--");
        Debug.WriteLine("items: {0}", items);
        Debug.WriteLine("rowsAffected: {0}", rowsAffected);
    }
    

    Results:

    --First Test--
    items: 1
    rowsAffected: 1
    --Second Test--
    items: 3
    rowsAffected: 3
    
    0 讨论(0)
提交回复
热议问题