Пользователь модели C #, запросы друзей и друзья с помощью Entity Framework Code
Я ранее задавал вопрос здесь на SO по аналогичной теме, но с тех пор использовал другой подход. Это моя модель:
public class ApplicationUser : IdentityUser<int, CustomUserLogin, CustomUserRole,CustomUserClaim>
{
public ApplicationUser()
{
Friends = new List<Friend>();
}
[Required]
public string Alias { get; set; }
public virtual ICollection<Friend> Friends { get; set; }
}
public class Friend
{
public virtual int Id { get; set; }
public virtual ApplicationUser RequestedBy { get; set; }
public virtual ApplicationUser RequestedTo { get; set; }
public DateTime? RequestTime { get; set; }
public FriendRequestFlag FriendRequestFlag { get; set; }
}
public enum FriendRequestFlag
{
None,
Approved,
Rejected,
Blocked,
Spam
};
Я могу добавить друзей с помощью этого подхода, и они заполняются, когда я получаю их из базы данных, пример:
public void AddFriendRequest(ApplicationUser user, ApplicationUser friendUser)
{
var friendRequest = new Friend()
{
RequestedBy = user,
RequestedTo = friendUser,
RequestTime = DateTime.Now,
FriendRequestFlag = FriendRequestFlag.None
};
user.Friends.Add(friendRequest);
}
Когда я запускаю приведенный выше код, таблица друзей в базе данных после выполнения выглядит следующим образом:
Когда я получу пользователя, я бы не хотел, чтобы Entity Framework получал все строки в Friend, если пользователь либоRequestedBy
или жеRequestedTo
, Можно ли это сделать с EF? Например с Fluent API? Я также хотел бы сопоставить ключи так, чтобы[ApplicationUser_Id]
не нужен