Int32 Id = DataContext.Table.Count(c => c.Id != 0) > 0
? DataContext.Table.Max(c => c.Id) + 1
: 1;
Remarque :
Générer un Id numérique avec Linq pourrait sembler simple : "un petit coup de Max + 1 et le tour est joué"... Et bien non! Car quand une table est vide, la méthode Max fait un gros buzzzzzzz "marche pas".
Une bonne pratique consiste donc à compter les lignes existante et dans le cas où il n'y a pas de données initialiser l'Id à 1 :