Question: I am using Entity Framework 1 with .net 3.5.

I am doing something simple like this:

```
var roomDetails = context.Rooms.ToList();

foreach (var room in roomDetails)
{        
   room.LastUpdated = DateTime.Now;
}

```

I am getting this error when I try to do:

```
 context.SaveChanges();

```

I get the error:

> 
> **Unable to update the EntitySet - because it has a DefiningQuery and no <UpdateFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.**
> 
> 
> 

I am doing lots of updates on the context and not having any issues, it's only when I try to update this particular entity.

All my searching shows up the same thing, that there is no primary key declared on the entity that I'm trying to update. But alas, I do have a Primary key declared...

Answer: 
This is the case for me. Simply removing resulted in another error. I followed the steps of this post except the last one. For your convenience, I copied the 4 steps from the post that I followed to solve the problem as following:

1. Right click on the edmx file, select Open with, XML editor
2. Locate the entity in the edmx:StorageModels element
3. Remove the DefiningQuery entirely
4. Rename the `store:Schema="dbo"` to `Schema="dbo"` (otherwise, the code will generate an error saying the name is invalid)
This is not a new answer but will help somebody who's not sure how to set primary key for their table. Use this in a new query and run. This will set UniqueID column as primary key.

```
USE [YourDatabaseName]
GO

Alter table  [dbo].[YourTableNname]
Add Constraint PK_YourTableName_UniqueID Primary Key Clustered (UniqueID);
GO

```