我有一个名为Technology的父表,其中包含以下主要字段(TechnologyID,TechnologyTypeID,timestamp等)。
然后我有继承 - 每个类型的表,如机架,服务器,VM,PC等。其中每个子表的ID也是TechnologyID insdie父表的外键。
现在我有以下操作方法来添加新的Rack: -
[HttpPost]
public ActionResult Create(Server server)
{
if (ModelState.IsValid) {
repository.InsertOrUpdateServer(server);
repository.Save();
return RedirectToAction("Index");
}
else {
return View();
}
}
但是上面会引发异常,因为RACKID就是表PK& FK为空。所以我的问题是如何添加父表(技术)的新实例并获取其ID,然后在将其保存到数据库之前将此ID分配给服务器?
答案 0 :(得分:0)
获取您要在其中添加technology
/ server
作为孩子的rack
对象的引用/ ID。
[HttpPost]
public ActionResult Create(Server server, int technologyID)
{
if (ModelState.IsValid) {
var technology = repository.Technologies.Where(t => t.Id == technologyID).FirstOrDefault();
server.technologyId = technology.Id;
repository.InsertOrUpdateServer(server);
repository.Save();
return RedirectToAction("Index");
}
else {
return View();
}
}