2017-03-07 4 views
0

はこの絵を参考にしてください作業エンティティフレームワーク:どのよう

this picture

この表のデータはEntity Frameworkをでフェッチされます。 EmailIDをダブルクリックして変更すると、データは自動的にSQL Serverに更新されます。

ここでは、更新に関するウェブ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状態SQL Serverの、不要に必要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()に達すると、dbで何を修正する必要があるかを探します。その時点で1つしかないので、おそらく非常に高速です。

エンティティフレームワークは、バックエンドで独自のdbクエリを作成します。プロファイラを使用しない限り、それらは表示されません。