si votre table base de données contient un clé incrémentable tu ne devra pas insérer ce champ, laisse la BD fait l'incrémentation ..
je veut te donnez un exemple !!:
soit une table Matable(idTable,Champ1,Champ2)
la Procédure T-sql de l'insertion est:
---------------------------------------------------- ALTER PROCEDURE dbo.AjouterMatable
(
@Param1 varchar(20) ,
@Param2 varchar(20)
)
AS
INSERT INTO Matable
(Champ1, Champ2)
VALUES (@Param1 ,@Param2);
select @@IDENTITY
RETURN
----------------------------------------------------
et dans le code c# tu peut récupérer le clé incrémenté (@@IDENTITY)
si ce cas ne te convient pas tu fait l'incrémentation dans le setter du propriéte IdUser :
publicint IdUser
{
get { return _idUser; }
set
{
_idUser = value;
/*
ajouter ici le Code d'incrémentation mais n'ajout pas du code qui fait du traitement lourd ou une aller-retour au serveur BD 
*/
}