实体框架(4.0) - 使用外键添加新记录

时间:2011-09-26 11:17:00

标签: entity-framework-4

我们在“联系人”表格中有一个表“问题”和外国人。“理想情况下,当添加新问题时,用户应从下拉列表中选择联系人。但是,在某些情况下,联系人可能尚未存在,因此用户可以添加最少的新联系人详细信息以将问题导入数据库。(这是一个支持台应用程序,速度对于操作员来说至关重要。)联系人数据将在以后清理。 / p>

因此,在代码中,我们使用Entity Framework检测新联系人并在数据库中创建一个新联系人:_context.AddToContacts(_contact);。然后,我们需要检索新的id以便在问题上进行更新 - 因此从contacts表中读取以添加最后一条记录。 这很好。

然后我们使用ContactsReference.EntityKey构建问题记录,包括新的外键。 当我们保存问题SaveChanges时,我们可以获得问题记录(使用正确的外键返回联系人),但我们将另一个联系人记录添加到数据库中。

我们在这做太多工作吗?或者Entity Framework是否能够处理表之间正确添加和管理数据链接?

1 个答案:

答案 0 :(得分:3)

您可以在一次交易中完成这两项工作。

var contact = new Contact(){/*initialize properties*/};
var issue = new Issue(){/*initialize properties*/};

issue.Contact = contact;

_context.AddToIssues(issue);

_context.SaveChanges();

EF将检测新的联系人并将其添加。