2012-06-14 63 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