estou a usar
public class User
{
public virtual int Id { get; set; }
public virtual IList<Names> Names { get; set; }
public virtual IList<Addresses> Addresses { get; set; }
}
e mapeamento como Increment e funciona para mim.
Id(x => x.Id).GeneratedBy.Increment();