2016-03-16 2 views
0

Я пробовал много вариантов и включил их здесь. Любой вариант, который я пробовал, кажется, создает некоторую новую ошибку.Как просмотреть индексный просмотр с записями только для текущего пользователя

public async Task<ActionResult> Index() 
    { 
     //var userId = UserManager.FindById(User.Identity.GetUserId()); 

     //var requests = db.Requests.Where(m => m.UserId == userId); ; 

     //var requests = db.Requests.Include(r => r.User); 
     //return View(await requests.ToListAsync()); 

     //var userId = UserManager.FindById(User.Identity.GetUserId()); 
     //var requests = db.Requests.Where(m => m.UserId == User.Identity.GetUserId()); 
     //return View(await requests.ToListAsync()); 
     var requests = db.Requests.Include(e => e.User).Where(m => m.UserId == User.Identity.GetUserId()); 

     return View(requests); 
    } 

и моя модель

public class Request 
{ 
    [Key] 
    public int RequestId { get; set; } 

    public string UserId { get; set; } 

    [StringLength(128), MinLength(3)] 
    [ForeignKey("UserId")] 
    public virtual ApplicationUser User { get; set; } 

    public DateTime Date 
    { 
     get { return DateTime.Now; } 
    } 
    public string Ticket { get; set; } 
} 

Я наконец-то понял, как создавать записи с текущим пользователем, связанных, но я не могу просмотреть только эти записи, связанные только текущий пользователь.

Ошибка

LINQ к Entities не распознает метод «System.String GetUserId (System.Security.Principal.IIdentity)» метод, и этот метод не может быть переведен в выражение магазина.

+0

Какие ошибки вы получаете? Вы не показали свои модели, поэтому мы не можем догадаться. –

+0

У меня появилось довольно много ошибок, но я чувствую, что есть какой-то фильтр для просмотра только записей, связанных с текущим пользователем, и ничего не нужно. Я мог бы легко ошибиться. –

+0

Итак, какова ошибка вашего текущего запроса для 'запросов', которые вы даете (что вы показали, выглядит хорошо)? –

ответ

2

Присвоить значение текущего пользователя к переменной, а затем использовать это значение в запросе

string userID = User.Identity.GetUserId(); 
var requests = db.Requests.Include(e => e.User).Where(m => m.UserId == userID); 
return View(requests); 
Смежные вопросы