Это окрестности класс, окрестность может иметь много последователей:как вернуть данные из навигационных свойств от многого ко многие отношений
public class Neighbourhood
{
public Neighbourhood()
{
this.Followerss = new HashSet<ApplicationUser>();
}
[Key]
public int Id { get; set; }
public string NeighbourhoodName { get; set; }
//Calculated property
public virtual ICollection<ApplicationUser> Followerss { get; set; }
}
и это мой класс ApplicationUser, пользователь может следовать несколько окрестностей:
public class ApplicationUser : IdentityUser<int, CustomUserLogin, CustomUserRole,>
{
public string Address { get; set; }
public ApplicationUser()
{
this.Followings = new HashSet<Neighbourhood>();
}
public virtual ICollection<Neighbourhood> Followings { get; set; }
Теперь, эти два имеют отношения многие ко многим друг с другом так, он создал новую таблицу в базу данных с именем NeighbourhoodApplicationUsers с колонкой (Neighbourhood_Id и ApplicationUser_Id).
Теперь я хочу, чтобы иметь метод, который будет возвращать обратно последователей соседства Итак, я написал это:
public virtual IEnumerable<NeighbourhoodProfileModel> GetFollowers(int userId)
{
var profiles = _context.Neighbourhoods
.SelectMany(u => u.Followerss)
.Select(u => new NeighbourhoodProfileModel
{
NeighbourhoodId = u.,
NeighbourhoodName = u.,
followersCount = u.,
IsFollowed = u.Followings.Any(user => user.Id == userId),
}).ToList();
return profiles;
}
Я не знаю, как моделировать эту анонимную функцию здесь, я застрял здесь, я думаю, может быть, я делаю это неправильно. Положив (.) точку после u, он должен вернуть u.NeighbourhoodName что-то подобное, но возвращать данные, связанные с пользователем, а не получать данные, относящиеся к классу окрестности.
Если я прокомментирую строку .SelectMany (u => u.followerss), тогда я получу все необходимые свойства в анонимной функции.
Это мой взгляд модель:
public class NeighbourhoodProfileModel
{
public int NeighbourhoodId { get; set; }
public string NeighbourhoodName { get; set; }
public string City { get; set; }
public int postCount { get; set; }
public int followersCount { get; set; }
public int Followerss { get; set; }
public bool IsFollowed { get; set; }
}
Пожалуйста, предложите мне, как изменить GetFollowers метод возвращать обратно правильные данные.