вы как кастомера создаете? поидее вы его создали раз, затем используете уже существующего из базы, а не добавляете одного и того же в базу много раз.
Связь кастомера с транзакциями прослеживается, мб попробовать явно обозначить ключевые поля аттрибутом [Key]? да и схему базу желательно переделать
в примере с goto - логично использовать continue - т.к. изменение счетчика происходит только после проверки условия. - и никаких костылей не потребуется.
пробуйте еще добавить в Transaction свойство
public int Customer_ID { get; set; }