0

我有一个存储库类,如下所示。我的创建方法在这里。我将在我的SQL Server数据库中将数据保存到3个表中。asp.net mvc使用EF将数据保存到数据库

我的表格是tblSemesterRegistration,tblSemesterSubjecttblSemesterCampu

在这里tblSemesterSubjecttblSemesterCamputblSemesterRegistration的外键。该外键是SemesterID这是一个自动增量ID。

我的问题是SemesterID外键没有保存到tblSemesterCamputblSemesterSubject。但是,当我尝试将数据保存到一个表时,它工作正常。

请问有没有人有关于如何解决这个问题的想法。谢谢...

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 2014-10-03 05:02:45

回答

0

当您将第一个表添加到上下文主键不会生成直到您不会保存上下文。

因此,保存上下文时添加第一个表,然后运行此代码。我的事情会奏效。

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

您好我解决了这个problem..My tblSemesterCampu外键是一个可空int值。现在我将它改为不可空int值。现在它正常工作...