asp.net mvc使用EF将数据保存到数据库
问题描述:
我有一个存储库类,如下所示。我的创建方法在这里。我将在我的SQL Server数据库中将数据保存到3个表中。asp.net mvc使用EF将数据保存到数据库
我的表格是tblSemesterRegistration
,tblSemesterSubject
和tblSemesterCampu
。
在这里tblSemesterSubject
和tblSemesterCampu
有tblSemesterRegistration
的外键。该外键是SemesterID
这是一个自动增量ID。
我的问题是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;
}
答
当您将第一个表添加到上下文主键不会生成直到您不会保存上下文。
因此,保存上下文时添加第一个表,然后运行此代码。我的事情会奏效。
tblSemesterRegistration tb = new tblSemesterRegistration();
tb.AcadamiYear = model.AcadamiYear;
context.tblSemesterRegistrations.Add(tb);
save();
答
您好我解决了这个problem..My tblSemesterCampu外键是一个可空int值。现在我将它改为不可空int值。现在它正常工作...
你使用Code First吗?或数据库第一?你可以发布你的模型代码吗? – SnareChops 2014-10-03 05:02:45