繁体   English   中英

实体框架一对多问题

[英]Entity Framework One-To-Many issue

我在项目中使用实体框架。 我陷入了麻烦。

我有两节课。 他们是:

public class User
{
    public virtual Guid Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public virtual string Username { get; set; }
    public string Email { get; set; }
    public virtual Company Company { get; set; }
}

public class Company
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public string Requisites { get; set; }
    public virtual List<User> Workers { get; set; }
}

我也有回购。 因此,当我创建一个新用户时,我想将此用户添加到公司中。 我应该如何实施? 我有两种方法:

  1. user.Company = company;
  2. company.Workers.Add(user);

哪种方法更好?

company是否已附加到上下文。

var company = db.Set<Company>().Find(companyId);

要么

db.Set<Company>().Attach(company);

user.Company =公司;

在第一种情况下,如果仅这样做。 该用户将不会被添加到数据库,您也需要具有此权限。

db.Entry(user).State = EntityState.Added;

要么

db.Set<User>().Add(user);

然后,将添加用户并与公司建立关系。

company.Workers.Add(用户);

这一项应该没问题,用户将被添加并与公司建立关系。 但是请注意,如果Workers为null,则需要首先实例化它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM