快速保存相关条目'如果它还不存在

时间:2014-05-18 22:50:03

标签: c# asp.net-mvc linq entity-framework

这看起来很简单,但我无法理解我应该怎么做。我想保留一份员工名单“职位”。因此,在进入员工时,我应该能够从一个职位列表中选择,或者只是输入一个新职位。最后,我当然应该只在位置表中存储位置的ID。

表格就像这样

Public Class Position {
    public int ID {get; set;}
    public string Name {get;set;}
}

Public Class Employee {
    public int ID {get; set;}
    public string LastName {get;set;}
    :
    :
    public int PositionID {get;set}
} 

我认为有一个提前输入功能,可以在输入时查找现有条目,如果找不到匹配项,我只需将新位置发布到位置表,然后以某种方式获取新创建的ID和存储这在员工记录中。可以这样做 - 具体来说,有没有办法返回新创建的记录的密钥?

嗯,可能已经解释了自己的解决方案 - 这是一般的做法吗?

谢谢:)

1 个答案:

答案 0 :(得分:0)

我同意user1987322这可能不是最好的解决方案,但无论如何:

如果您使用的是实体框架,则只需将一个实体与相关实体相关联即可。因此,使用您的模型,您可以这样做:

using(var context = new EntityContext())
{
    Employee emp = new Employee()
    {
       LastName = lastName,
       Position = new Position { Name = name }
    };

    context.Employees.AddObject(emp);
    context.SaveChanges();
}

新的位置实体将与新员工一起进入上下文,并且框架会处理关联修复。