0
을 LazyLoad, 사용자 클래스 :asp.net MVC 사용자의 친구
public class User
{
[Key]
public Guid ID { get; set; }
[Required(ErrorMessage = "You must pick a user name")]
[DisplayName("User Name")]
public string Username { get; set; }
[Required]
public string FullName { get; set; }
[Required(ErrorMessage = "You give a valid email address")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
[Required]
public DateTime CreateAt { get; set; }
public string Image { get; set; }
public bool RemeberMe { get; set; }
public bool Dummy { get; set; }
public virtual ICollection<UserFriend> Friends { get; set; }
}
UserFriend 등급 : - 사용자
public class UserFriend
{
[Key, Column(Order = 0), ForeignKey("User")]
public Guid UserId { get; set; }
public User User { get; set; }
[Key, Column(Order = 1), ForeignKey("Friend")]
public Guid FriendId { get; set; }
public User Friend { get; set; }
public DateTime DateCreated { get; set; }
}
사용자 저장소 사이의 관계를 유지 :
public class UserRepository : IUserRepository
{
public User GetUserByName(string userName)
{
return context.Users.FirstOrDefault(u => u.Username == userName);
}
}
나는이 방법을 사용하려고하면 :
var userRepo = new UserRepository(new DataContext());
User user = userRepo.GetUserByName(User.Identity.Name);
문제 :. 나는 그것이 바로 내 게으른 부하가 작동하지있어 경우 user.Friends.first() 친구가 null 을 반환합니다.
도와주세요 ... 프로젝트에
링크 - 만약 당신이 친구 수집
또한Friends = new HashSet<UserFriend>()
의 새로운 인스턴스를 생성해야 사용자 클래스의 생성자에서 https://github.com/RanDahan/barker
그러면 dbcontext와 관련된 구성을 보여줍니다. – Jorge
user.identity.name에 값이 있습니까? 이것이 어디에서 불려지 는가? 행동 방식이나 다른 곳에서? – Brian
예, 사용자 세부 정보가 작동합니다. 만약 내가 user.Friends.first() 입력합니다. 사용자가 내 세부 정보를 볼 수 있습니다 그냥 친구 param NULL입니다. –