user3567544
user3567544

Reputation: 23

Store update insert or delete statement affected an unexpected number of rows (0)

I'm using the code show below to update an entity model. But I get this error:

Store update, insert, or delete statement affected an unexpected number of rows (0)

And reason of this error is also known, it's because the property does not exist in the database. For that I found have only one option: first check that the entity exists, then update it.

But, as I'm updating 10,000+ rows at a time, it will be time consuming to check each time in database if this property exist or not.

Is there any another way to solve this ?

Thank you.

foreach (Property item in listProperties)
{
    db.Properties.Attach(item);
    db.Entry(item).Property(x => x.pState).IsModified = true;
}

db.SaveChanges();

Upvotes: 0

Views: 801

Answers (2)

Muhammad Aqib
Muhammad Aqib

Reputation: 849

I got this error Just by updating EF version from 5 to 6 solved the issue.

Upvotes: 0

Yuliam Chandra
Yuliam Chandra

Reputation: 14640

You use it the wrong way. If you want to update without retrieving the entity, just change the state of the updated entity with providing the id.

foreach (Property item in listProperties)
{
    db.Entry(item).State = EntityState.Modified;
}

db.SaveChanges();

Attaching an existing but modified entity to the context

If you have an entity that you know already exists in the database but to which changes may have been made then you can tell the context to attach the entity and set its state to Modified.

When you change the state to Modified all the properties of the entity will be marked as modified and all the property values will be sent to the database when SaveChanges is called.

Source

Upvotes: 1

Related Questions