EF6 Как вставить первичный ключ вновь добавленной строки в другой столбец новой строки той же таблицы перед вызовом сохранения изменений? - PullRequest
0 голосов
/ 26 апреля 2018
Seq      RefSeq    Name
1        null      Manager  
2        1         Employee

Я пытаюсь вставить несколько строк в таблицу. Когда я вставляю вторую строку, показанную выше, мне нужно иметь возможность вставить Seq первой строки в столбец RefSeq второй строки. Я должен быть в состоянии сделать это до вызова SaveChanges (). Как я могу это сделать?

1 Ответ

0 голосов
/ 27 апреля 2018

вы можете попробовать переопределить функцию SaveChanges в вашем Context Class и добавить этот код:

public override int SaveChanges ( ) {
            var lastSeq = this.[yourTable].OrderByDescending ( c => c.Seq ).FirstOrDefault ( ).RefSeq;

            foreach(var  ent in this.ChangeTracker.Entries ( ).Where ( x => x.Entity is [theClassofYourEntity] ) ) {
                ( ( [ theClassofYourEntity ] ) ent.Entity ).RefSeq = lastSeq;
            }    

            return base.SaveChanges ( );
        }

замените [*****] вашими значениями или именами таблиц и сущностей класса

(работает только при сохранении по одному)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...