0
votes

I have removed the PrimaryKey from my table, refreshed the EDMX, and now I am getting this error message when doing db.SaveChanges():

Unable to update the EntitySet 'Results' because it has a DefiningQuery and no element exists in the element to support the current operation.

Now... 1 - I dont want PrimaryKey in my table. The table is just a bag of values, no PK is required. 2 - I read another post where someone suggested to remove DefiningQuery element from EF generated EDMX. It is not working, and I avoid manual changes to automatically generated EDMX.

Any idea how I can avoid this error, and not define PK in my table?

Thanks.

1

1 Answers

0
votes

In Entity Framework everything must have a key, at least in the model. You can remove it from the database but still you'll have to define a key in the model, which may be a composite key to ensure it is unique. Otherwise EF won't be able to materialize or save objects correctly.

However, I would use a primary key in the table anyway. It is no trouble at all to have an identity field in it and you don't have to worry about finding a unique combination of fields yourself. I can't imagine that the table does not need some notion of identity, or can it really have two exactly identical rows?