我有一个将数据保存到数据库的 post 方法,我需要返回保存记录的 id 并将其作为 Foreigh 键传递给它



这是我的示例代码。

首先,我想返回已保存记录的 Id(机构 ID(

Ownerinfo 方法接受 int institutionId,以便将记录与注册机构相关联。

请协助实现这一目标的最佳方法:

public ActionResult Registration(RegistrationViewModel model)
{
if (model != null)
{
string userId = User.Identity.GetUserId();
if (model.ProviderTypeId == 1) // Private FET College
{
var institution = new Institution
{
ProviderTypeId = model.ProviderTypeId,
RegisteredName = model.RegisteredName,
CIPCNo = model.CIPCNo,
ExamCentreNumber = model.ExamCentreNumber,
DateCreated = DateTime.Now,
CreatedById = Int32.Parse(userId)
};
_db.Institutions.Add(institution);
_db.SaveChanges();
int institutionId = _db.Institutions.Max(item => item.InstitutionId);
}
if (model.ProviderTypeId == 2) // Private AET College
{
var institution = new Institution
{
ProviderTypeId = model.ProviderTypeId,
RegisteredName = model.RegisteredName,
CIPCNo = model.CIPCNo,
ExamCentreNumber = model.ExamCentreNumber,
DateCreated = DateTime.Now,
CreatedById = Int32.Parse(userId)
};
_db.Institutions.Add(institution);
_db.SaveChanges();
int institutionId = _db.Institutions.Max(item => item.InstitutionId);
}
if (model.ProviderTypeId == 3) // Independent School
{
var institution = new Institution
{
ProviderTypeId = model.ProviderTypeId,
RegisteredName = model.RegisteredName,
CIPCNo = model.CIPCNo,
ExamCentreNumber = model.ExamCentreNumber,
RegistrationNo = model.RegistrationNo,
RegisteredWithDbe = model.RegisteredWithDbe,
CreatedById = Int32.Parse(userId),
DateCreated = DateTime.Now
};
_db.Institutions.Add(institution);
_db.SaveChanges();
int institutionId  = _db.Institutions.Max(item => item.InstitutionId);
}
return RedirectToAction("Ownerinfo");
}
return View(model);
}

您可以通过int id = institution InstitutionId获取插入的身份。当您将记录插入表中时,EF 会提供此信息。

获取标识的最大值不是正确的方法。 因为其他应用程序可能同时在表中插入或删除了记录。

最新更新