我有一个数据库,并使用C#生成了类。
2个表:User
和Company
。
User
看起来像这样:
public int CompanyId { get; set; }
public virtual Company Company { get; set; }
Company
看起来像这样:
public virtual ICollection<User> Users { get; set; }
我得到这样的Company
:
User user = unitOfWork.Users.Where(x => x.Id == 1).SingleOrDefault();
在我的数据库中,有一个插入的ID为1的用户和一个公司,以及从用户到公司的引用(companyId)。
我的用户对象现在有companyId
,整数为1
。但是Company
为空。
我与一对多关系存在相同的问题,因此集合为空。
这是为用户生成的:
entity.HasIndex(e => e.CompanyId)
.HasName("IX_Company_Id");
entity.Property(e => e.CompanyId).HasColumnName("Company_Id");
entity.HasOne(d => d.Company)
.WithMany(p => p.User)
.HasForeignKey(d => d.CompanyId)
.HasConstraintName("FK_dbo.User_dbo.Company_Company_Id");
答案 0 :(得分:0)
如果您还想为用户获取$push
,请像这样使用Company
:
.Include()
由于User user = unitOfWork.Users
.Include(u => u.Company)
.SingleOrDefault(x => x.Id == 1);
上的Company
是User
属性,因此默认情况下它是延迟加载的-除非您使用virtual
子句明确包含它。