[英]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; }
}
我也有回购。 因此,当我创建一个新用户时,我想将此用户添加到公司中。 我应该如何实施? 我有两种方法:
user.Company = company;
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.