Это мой метод действий, который извлекает всех пользователей с их идентификатором.Как добавить условие к запросу LINQ на основе Id
public JsonResult GetUsers()
{
var ret = (from user in db.Users.ToList()
select new
{
UserName = user.UserName,
// i am stuck here, i want to get all those ids whom current logged user is following
Idfollowing = user.FollowTables.Contains()
Idnotfollowing =
});
return Json(ret, JsonRequestBehavior.AllowGet);
}
структура FollowTable такова:
ID UserId FollowId
1 4 11
2 4 12
2 4 13
здесь, идентификатор текущего пользователя LoggedIn является 4, и он следит за 11, 12, 13, так что я хочу вернуться только 11, 12 и 13 в Idfollowing и оставить оставшийся id в Idnotfollowing. как это сделать.
Ну, я думаю, что со списком или массивом я не получу желаемого результата. поэтому, я хочу добавить что-то здесь. Ну, с каждым UserName идентификатор также передается на страницу просмотра. Итак, я разделил их на два. Теперь, как назначать значения этим идентификаторам.
Comapre User.Id с матчем followId column.If текущего пользователя LoggedIn следует таблицы найден .i.e, если ид спички или нашел назначит user.id в Idfollowing и нуль в Idnotfollowing и наоборот в противоположном случае. Я должен сгенерировать следующую кнопку для изменения списка на основе этих возвращенных идентификаторов.
public JsonResult GetUsers()
{
int currentUserId = this.User.Identity.GetUserId<int>();
var ret = (from user in db.Users.ToList()
let Id = user.FollowTables.Where(x => x.UserId == currentUserId).Select(f => f.FollowId).ToList()
let Idnot = (from user2 in db.Users
where !Id.Contains(user2.Id)
select user2.Id).ToList()
select new
{
UserName = user.UserName,
Id = Id,
//Id = user.FollowTables.Where(x => x.UserId == currentUserId)
// .Select(x => x.FollowId).Single(),
Idnot = Idnot,
'Idnotfollowing =! Idfollowing', правильно? –
yupp, он должен вернуть оставшиеся все ids @ kienct89 – duke