[Mono-dev] [ADO.NET] AutoIncrement fields, unique constraints and updates
Marek Habersack
grendel at caudium.net
Fri Mar 3 06:13:37 EST 2006
Hello everybody,
I've got code that uses command builder for a typed dataset which contains
an auto-incremented field. Everything works fine until I try to update a row
and store the modified dataset back in the database. At this point,
UniqueConstraint throws an exception for the row being updated, claiming
that its auto-increment field's value is taken (which is, technically, true
as this field is the one that contains the "non-unique value"). I've been
looking in the Microsoft docs for a clue as to how UniqueConstraint (or
the command builder) should behave in such situation, but I've found nothing
about the subject.
Perhaps I'm missing something that is already present in ADO.NET that
handles the above situation, but I think that a common sense approach to
this would be to
a) ignore the auto-increment fields in command builder when building
queries (since setting their values doesn't make sense as the DBMS
takes care of that)
b) don't enforce unique constraint on a row when the row is in the
changed state after making sure that this row is the only one with the
value
c) a form of the above, rewrite Index.HasDuplicates to somehow detect that
the row with "duplicate" value is in fact just a modified version of
the row in question and thus it is not a duplicate.
Please let me know if I'm totally wrong about the above and if there already
exists a solution that I've missed :)
thanks,
marek
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: Digital signature
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20060303/1b112387/attachment.bin
More information about the Mono-devel-list
mailing list