The test case has been simplified to fail even on simple update of a non-key field.
// Using the .xsd generation // // DS is a typed Dataset containing a DataTable "parms" with an numeric id column, autoinc off // taParms is its TableAdapter // xsd_genTableAdapter taParms = new xsd_genTableAdapter(); DS ds = new DS(); taParms.Fill(ds.parms); // read some rows from db DS.parmsRow r = ds.parms[1]; // pick any row r.some_field++; // change any field, doesn't matter if it is a key or not taParms.Update(ds.parms); // write changes to db // Work-arounds: // Re-reading the parms table after update from the database // taParms.Update(ds.parms.Copy()); ds.EnforceConstraints = false; // just toggle this ds.EnforceConstraints = true; // ConstraintException thrown on mono but not windows Anyone using xsd that could confirm/deny? I believe the problem is that the DbDataAdapter::Update() is corrupting the indexes. The particular test case is using a 3-col PK if that makes any difference. Using Mono 2.8.1 windows and linux builds both fail. Works great on native non-mono windows. Chris -- View this message in context: http://mono.1490590.n4.nabble.com/ConstraintException-after-Dataset-remove-add-rows-and-Update-tp3090120p3166428.html Sent from the Mono - General mailing list archive at Nabble.com. _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
