2012-06-14 99 views
0

我在我的數據庫中有一張表,名爲NumOfView的列中有一列顯示鏈接上的點擊次數。該鏈接顯示了此表中某行的某些信息。我用onclick事件在錨標記這樣的:如何使用asp.net mvc3中的實體框架進行更新?

[email protected]("NumOfClicks", "AdvertiseHelper",new { id = Model.id[i] }) 

在NumOfClicks功能我用這個代碼

public void NumOfClicks (int id) 
    { 
     Ad ad1 = new Ad(); 
     var advert = (from ad in storedb.Ads where ad.AdId == id select  ad.NumOfView).First(); 
     advert += 1; 

    } 

廣告

量NumOfView

表中我想增加1個單位。但我不知道如何繼續編碼更新表中的這個值。有人可以幫我嗎?

回答

3

這是應該如何完成的基礎知識。首先,您必須從數據庫中選擇記錄本身,而不是點擊次數。增加該記錄上的點擊次數,然後將更改提交到DataContext。

public void IncrementClickCount(int id) 
{ 
    var advert = 
     (from ad in storedb.Ads 
     where ad.AdId == id 
     select ad).Single(); // Select the row in the database represented by "ad" 
    advert.NumOfView++;   // Perform the increment on the column 

    // SubmitChanges is how an update is done in Linq2Sql 
    // This requires a .dbml file for the database object file 
    // storedb.SubmitChanges(); // Assumes storedb is a valid DataContext, updates 

    // SaveChanges is how an update is done in EntityFramework 
    // It is recognizable because it uses an .edmx file for its database object 
    storedb.SaveChanges(); 
} 

,同樣地問SO問題:Entity Framework - Update a row in a table

+0

我看不到的SubmitChanges方法,但我看到AcceptAllChanges,並認爲這是呈三角的SubmitChanges方法和使用它,但不工作... – starrr

+0

@ Tena your storedb看起來是一個'ObjectContext'。爲了更新數據庫,你需要它是一個'DataContext'。如果你在這裏沒有使用數據庫,我需要更多地瞭解你的數據結構。 –

+0

感謝您的回答和您的時間。我將這個鏈接用於我的項目。 [鏈接](http://msdn.microsoft.com/en-us/vs2010trainingcourse_aspnetmvc3modelsanddataaccess_topic2)我使用的方法與此類似。 – starrr