I finally find an acceptable work around myself and propose to share it here.
I discover that the DynamicGridView DataKeyNames property is forced during the OnInit event to contain the list of primary keys of the table associated with the LinqDataSource.
So by derivating DynamicGridView and providing an overriden event for the OnInit, this solves my issue:
protected override void OnInit(EventArgs e)
{
string[] oldDataKeyNames = this.DataKeyNames; // Save DataKeyNames as declared
base.OnInit(e);
if (oldDataKeyNames.Length > 0)
this.DataKeyNames = oldDataKeyNames; // Restore original declaration
}
Hoping that final Microsoft version will take care of it.