2017-08-24 86 views
2

我想使用.NET代碼優先使用.NET Core與實體框架建立一對多關係。代碼優先實體框架關係始終爲空

我有兩個表格:公司和用戶,公司有很多用戶。這兩個表都返回除關係對象以外的所有列中的數據。

對於任何請求,公司和用戶ICollection對象都始終爲空。我曾嘗試流利的映射有:

  modelBuilder.Entity<User>() 
      .HasOne<Company>(s => s.Company) 
      .WithMany(s => s.User) 
      .HasForeignKey(s => s.CompanyId); 

這裏是我的類對象:

User

Company

這裏是我的數據庫映射:

enter image description here

我通過內部連接驗證了User.CompanyId = 1 & & CompanyId = 1返回數據庫中的結果,但公司對象仍然爲null。我嘗試將CompanyId(FK)重命名爲Company_CompanyId,玩弄了實體框架屬性的變體等,但無濟於事。

有什麼建議嗎?

回答

2

EF core加載相關數據,您需要使用Include方法作爲查詢的一部分:

var user= context.Users.Include(u=>u.Company).FirstOrDefault(u.UserId==1); 
+0

謝謝!解決方案簡單我使用Linq to Sql拖放n拖放方法,不需要Include(),所以這對我來說是新的,但是很簡單。 – user1854458

+0

不客氣,是的,我知道這個感覺,問題是EF Core仍然不支持延遲加載 – octavioccl