【发布时间】:2013-02-08 06:44:53
【问题描述】:
嘿,我正在尝试在 DB 优先模式下使用实体框架。 我有一个存储在一个名为“DomainEntities”的表中的实体层次结构。
当我使用实体框架生成架构时,我得到了如下所示的正确映射。
现在我想知道使用此模型执行插入的方式是什么。 如果我想插入一个带有某个父项的新条目,我需要这样做吗:
[HttpPost]
public ActionResult Create(DomainEntity i_EntityToCreate, int ParentEntityID)
{
using (var db = new CamelotShiftManagementEntities())
{
var parentEntity = db.DomainEntities.Find(ParentEntityID);
i_EntityToCreate.ParentEntity = parentEntity;
i_EntityToCreate.EntityTypeID = 1;
db.DomainEntities.Add(i_EntityToCreate);
db.SaveChanges();
}
return RedirectToAction("Index");
}
这是正确的还是我应该遵循另一种设计来使用实体框架来表示实体的层次结构?
【问题讨论】:
-
我猜“DomainEntity”中必须有“ParentEntityID”字段?
-
存在但 asp.net 实体框架将其转换为 parentEntity 和子实体的关联.. 我无法访问我将设置为可空 int 的父实体 id 的 int 值
-
在 EF 中导入表时有一个选项可用。 “在模型中包含外键列”。确保必须选中它才能看到此字段。
-
在哪里可以找到这个选项?是在我创建 EDMX 方案的时候吗?
-
当您将数据库中的表导入其中时不会。
标签: c# asp.net-mvc entity-framework linq-to-sql entity-framework-4