Bir projede çalışıyorum ve güncellemeden veya silmeden önce kullanıcı kimliğini kontrol etmek istiyorum. Bunun için Entity Framework ve ASP.NET MVC kullanıyorum.Köprü tablosu kullanarak kullanıcı kimliği alma Varlık Yönetimi
Tablo 1 Bu
public class Post {
public int PostId { get; set; }
// more stuff
public ICollection<UserPost> UserPost{get; set;}
}
benim ikinci tablo Burada
public class User {
public int UserId { get; set; }
// more stuff here.
public ICollection<UserPost> UserPost{get; set;}
}
olduğunu benim sonuncusu: Bence
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
}
Güncelleme için kullanıcı için kontrol etmek istediğiniz veya bu koddaki gibi mesajlarını sil ama işe yaramıyor.
@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 }
Sadece koşulun ilk bölümünü kontrol ederek görünümünüzü sorun gidermeyi deneyin ... daha sonra ikinci parçayı test edin ('veya' sonra) ||). Sanırım sorunun mantığının ikinci kısmı. Eğer öyleyse, linq mantığını kullanmaktan kaçının. Aksine: Model [i] .UserPost.UserId == User.Identity.GetUserID() veya bunun gibi bir şey ... umarım bu yardımcı olur. –
Yap Sorunum, (||) Model [i] .UserPost.UserId kullanmayı denedim ancak bu durumun ikinci bölümünde bulunuyor. @SRQCoder – Abdullah