I'm running into an oddball situation in a WPF app using EFDAL. I'm not sure if it's a WPF issue or an EFDAL issue.
I bind an ObjectSet to a DataGrid, and use it as the source for control values in various columns of the grid. One of those columns is a UserControl which binds to a foreign key field in the Entity. That foreign key field can be null. Another column (for
comparison) is a DataGridTextBoxColumn, bound to a string property in the Entity.
If I make a change to the textbox in the DataGridTextBoxColumn I can call SaveChanges() on the EntityContext and all is well.
But if I make a change to the UserControl in the DataGridTemplateColumn, something calls the property setter on the Entity's primary key field (an integer)...which is not good :). Needless to say, that attempts throws an exception because the primary key
field is not allowed to be modified, and shouldn't be modified, after it's initially set.
I'm confused as to why changing a string property in the Entity doesn't cause a problem while changing a foreign key property in the Entity does. Why would one situation mark the primary key as "dirty" while the other doesn't?
Am I interacting with that foreign key field incorrectly? I'm assigning it a value directly -- should I be changing the foreign record that it points to in a different way?