Jag hade samma problem och det visade sig att problemet berodde på överordnade Equals på den mappade klassen. Min Equals-metod jämförde bara det primära nyckelfältet som var ett identitetsfält. Naturligtvis när objekten är nya är alla identiteter 0. Så när InsertAllOnSubmit anropades trodde den att alla nya objekt var desamma och ignorerade i princip alla utom de första.