Updating database row from model

Posted by Jamie Dixon on Stack Overflow See other posts from Stack Overflow or by Jamie Dixon
Published on 2010-05-31T14:33:25Z Indexed on 2010/06/01 14:13 UTC
Read the original article Hit count: 222

Filed under:
|
|

Hey everyone,

I'm haing a few problems updating a row in my database using Linq2Sql.

Inside of my model I have two methods for updating and saving from my controller, which in turn receives an updated model from my view.

My model methods like like:

public void Update(Activity activity)
        {
            _db.Activities.InsertOnSubmit(activity);
        }

public void Save()
        {
            _db.SubmitChanges();
        }

and the code in my Controller likes like:

[HttpPost]
        public ActionResult Edit(Activity activity)
        {
            if (ModelState.IsValid)
            {
                UpdateModel<Activity>(activity);
                _activitiesModel.Update(activity);
                _activitiesModel.Save();
            }
            return View(activity);
        }

The problem I'm having is that this code inserts a new entry into the database, even though the model item i'm inserting-on-submit contains a primary key field.

I've also tried re-attaching the model object back to the data source but this throws an error because the item already exists.

Any pointers in the right direction will be greatly appreciated.

UPDATE:

I'm using dependancy injection to instantiate my datacontext object as follows:

IMyDataContext _db;

        public ActivitiesModel(IMyDataContext db)
        {
            _db = db;
        }

© Stack Overflow or respective owner

Related posts about linq-to-sql

Related posts about update