>but it seems to require the PK being set on the backend. I tried setting the PrimaryKey property, and that didn't work.
I have never tried it without a PK. You might be able to make it work by providing your own update command. I remember that classic ADO would give an error if you executed an update command that updated too many rows, like if you unintentially updated too may rows because you did not specify a PK. Obviously, you could bypass the data adapter and execute any sql command with ExecuteNonQuery.