实体框架:加载相关的对象/表

时间:2013-11-23 20:27:00

标签: c# entity-framework

我正在使用Entity Framework将数据保存到数据库中。现在我有一个班级:

public class User 
{
   public int Id { get; set; }
   public virtual ICollection<User> Friends { get; set; }
   public virtual User BestFriend { get; set; }

   public User()
   {
      Friends = new HashSet<User>();
   }
}

我用

加载用户
User user;
using(var context = DatabaseContext) 
{
   user = context.Users.Select(x => x.Id == 1);
}

FriendsBestFriend属性为null。然而,这是有效的:

  User user;
  using(var context = DatabaseContext) 
  {
     user = context.Users.Include(x => x.BestFriend).Include(x => x.Friends).Select(x => x.Id == 1);
  }

这让我遇到了问题,例如: user.BestFriend.BestFriend为空。我也可以包含这个属性,但这会导致更多问题更深层次。

如何知道延迟加载和急切加载确实存在,但我不知道如何使用这里的任何一个对我有利。

由于

0 个答案:

没有答案
相关问题