簡體   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