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

本文关键字:如果 不存在 保存 | 更新日期: 2023-09-27 18:04:01

这看起来很简单,但是我不知道该怎么做。我想保留一份员工职位名称的清单。因此,在输入员工时,我应该能够从职位列表中进行选择,或者简单地输入一个新职位。最后,我当然应该只在位置表中存储位置的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,并将其存储在员工记录中。这可以做到吗?具体来说,是否有一种方法可以返回新创建记录的键?

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

谢谢:)

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

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

如果您使用实体框架,您只需将一个实体与相关实体相关联。对于你的模型,你可以这样做:

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

新的Position实体与新的Employee一起被引入到上下文中,并且由框架处理关联修复。