【问题标题】:Save a related entry 'on-the-fly' if it does not already exist如果相关条目尚不存在,则“即时”保存它
【发布时间】:2023-03-23 06:47: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}
} 

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

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

谢谢:)

【问题讨论】:

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


    【解决方案1】:

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

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

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

    新的职位实体被带入新员工的上下文中,并且关联修复由框架负责。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多