Я работаю над проектом, и я хочу проверить идентификатор пользователя, прежде чем позволить ему обновлять или удалять. Для этого я использую Entity Framework и ASP.NET MVC.Как получить userId с помощью таблицы моста Entity Framework
Таблица 1 является
public class User {
public int UserId { get; set; }
// more stuff here.
public ICollection<UserPost> UserPost{get; set;}
}
Вот моя вторая таблица
public class Post {
public int PostId { get; set; }
// more stuff
public ICollection<UserPost> UserPost{get; set;}
}
Это мой последний:
public class UserPost {
public int userPostId { get; set; }
public int userId {get; set; }
public int postId {get; set; }
public virtual User User { get; set; }
public virtual User Post{ get; set; }
// and more
}
На мой взгляд, я хочу, чтобы проверить пользователю обновить или удалить его сообщения, как этот код, но он не работает.
@model List<MyFinalProject.Core.Domain.Post>
// Razor syntax here
@if (User.Identity.IsAuthenticated && User.IsInRole("Admin") ||
Model[i].UserPost.Where(u => u.UserId == User.Identity.GetUserId<int>()))
{ // some logic }
Попробуйте устранить неполадки в вашем взгляде, просто проверив первую часть условного, если ... затем проверьте вторую часть (после «или» ||). Я предполагаю, что это вторая часть логики. Если это так, избегайте использования логики linq. Скорее: Model [i] .UserPost.UserId == User.Identity.GetUserID() или что-то в этом роде ... надеюсь, что это поможет. –
Yap Моя проблема во второй части условия после (||) Я попытался использовать Model [i] .UserPost.UserId, но я не смог получить доступ для него. @SRQCoder – Abdullah