0

У меня есть класс репозитория, показанный ниже. Мой метод создания находится здесь. Я собираюсь сохранить свои данные в 3 таблицы в моей базе данных SQL Server.asp.net mvc сохранение данных в базу данных с помощью EF

Мои таблицы: tblSemesterRegistration, tblSemesterSubject и tblSemesterCampu.

tblSemesterSubject и tblSemesterCampu имеет внешние ключи от tblSemesterRegistration. Этот внешний ключ - SemesterID, который является идентификатором автоматического увеличения.

Моя проблема заключается в том, что внешний ключ SemesterID не сохраняется до tblSemesterCampu или tblSemesterSubject. Но когда я пытаюсь сохранить данные только в одной таблице, она отлично работает.

У кого-нибудь есть идеи о том, как решить эту проблему, пожалуйста. Спасибо ...

public string Create(SemesterRegistationModel model, string SubjectCredit) 
{ 
    tblSemesterRegistration tb = new tblSemesterRegistration(); 
    tb.AcadamiYear = model.AcadamiYear;      
    context.tblSemesterRegistrations.Add(tb); 
    foreach (string subjectcredit in array) 
    { 
     string[] arraycredit = subjectcredit.Split(','); 
     arraycredit = arraycredit.Where(x => !string.IsNullOrEmpty(x)).ToArray(); 
     int subject1 = Convert.ToInt32(arraycredit[0]); 
     tblSemesterSubject tbss = new tblSemesterSubject(); 
     tbss.SemesterID = tb.SemesterID; 
     tbss.Subject = subject1; 
     context.tblSemesterSubjects.Add(tbss); 
    } 

    foreach (CampusSelectModel Campus in model.lst_campus) 
    { 
     tblSemesterCampu tbcam = new tblSemesterCampu(); 
     tbcam.SemesterID = tb.SemesterID; 
     tbcam.CampusName = Campus.Name; 
     context.tblSemesterCampus.Add(tbcam); 
    } 

    Save();              
    model.SemesterID = tb.SemesterID; 
} 
+0

Вы используете Code First? или База данных? можете ли вы опубликовать свой код модели? – SnareChops

ответ

0

При добавлении первой таблицы в контекст первичный ключ не будет создан до тех пор, пока вы не сохраните контекст.

Итак, сохраните контекст при добавлении первой таблицы, а затем запустите этот код. Я думаю, что это сработает.

tblSemesterRegistration tb = new tblSemesterRegistration(); 
tb.AcadamiYear = model.AcadamiYear;      
context.tblSemesterRegistrations.Add(tb); 
save(); 
0

Привет, я решил эту проблему. Мой внешний ключ tblSemesterCampu был нулевым значением int. теперь я меняю его на значение, не равное нулю. Теперь он работает нормально ...

Смежные вопросы