在每个类型的表继承中插入子记录之前获取父表的ID

时间:2013-07-20 22:55:21

标签: asp.net-mvc entity-framework

我有一个名为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分配给服务器?

1 个答案:

答案 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();
            }
    }