2017-03-07 90 views
0

請參照這樣的畫面:如何實體框架的工作

this picture

本表數據獲取與實體框架。當我雙擊EmailID並進行更改時,數據將自動更新爲SQL Server。

這的Web API代碼有關更新:

// PUT: api/Subscriber/5 
public void Put(tbl_Subscribers sub) 
{ 
    if (ModelState.IsValid) 
    { 
     myEntity.Entry(sub).State = EntityState.Modified; 
     try 
     { 
      myEntity.SaveChanges(); 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
    } 
} 

當這個代碼運行,修改後的emailID已經更新到SQL Server,無需任何SQL狀態,無需ID,它如何更新的代碼?

AngularJS控制器:

$scope.updSubscriber = function (sub, eve) { 
    sub.MailID = eve.currentTarget.innerText;//get EmailID 
    var upd = APIService.updateSubscriber(sub);//update EmailID 
    upd.then(function (d) { 
     getAll(); 
    }, function (error) { 
     console.log('Oops! Something went wrong while updating the data.') 
    }) 
}; 

角服務:

this.updateSubscriber = function (sub) { 
return $http({ 
    method: 'put', 
    data: sub, 
    url: 'api/Subscriber' 
}); 

}

希望有人能幫我解釋一下。

+0

'它如何更新代碼'<=我不理解你的問題。它是什麼,你想要做的確切...... – Igor

+0

請參閱截圖。 – qianli

+0

從'put'方法返回更新模型,然後從結果角度更新模型。 – Igor

回答

0

它看起來像每一行都訂閱了一個wep API函數。該函數使用Angular JS對你的代碼進行異步調用。

那麼,是不是在這裏沒有魔法:

myEntity.Entry(sub).State = EntityState.Modified; 
    try 
    { 
     myEntity.SaveChanges(); 
    } 

子含有什麼已經修改你的實體信息。

一旦達到了db.SaveChages(),它會查看你的數據庫中應該做些什麼修改,因爲它只有一個可能非常快。

實體框架在後端編寫自己的數據庫查詢,除非使用分析器,否則無法看到它們。