För er som inte orkar läsa allt vill jag skapa en post med många-till-många relation till inloggad användare där jag vill lägga till UserId från inloggad användare samt PostId i associationtabellen när jag skapar en ny post. Men hur?
Jag har skapat ett nytt projekt med asp.net MVC identity
Jag har en modell Post
Och uppdaterade IdentityModels.cs med
Jag får en extra associationstabell ApplicationUserPosts när jag kör applikationen. Men hur sätter jag UserId och postId i den extra tabellen ApplicationUserPosts när jag skapar en ny post?
Här är min funktion för att skapa en post
och jag hämtar den inloggade användarens Id i var User.
Jag har skapat ett nytt projekt med asp.net MVC identity
Jag har en modell Post
Kod:
public class Post { public Post() { this.ApplicationUser = new HashSet<ApplicationUser>(); } public int PostId { get; set; } public string Message { get; set; } public DateTime MessageDate { get; set; } public virtual ICollection<ApplicationUser> ApplicationUser { get; set; } }
Och uppdaterade IdentityModels.cs med
Kod:
public ApplicationUser() { this.Posts = new HashSet<Post>(); } public virtual ICollection<Post> Posts { get; set; }
Jag får en extra associationstabell ApplicationUserPosts när jag kör applikationen. Men hur sätter jag UserId och postId i den extra tabellen ApplicationUserPosts när jag skapar en ny post?
Här är min funktion för att skapa en post
Kod:
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "PostId,Message,MessageDate")] Post post) { var user = User.Identity.GetUserId(); if (ModelState.IsValid) { db.Posts.Add(post); db.SaveChanges(); return RedirectToAction("Index"); } return View(post); }
och jag hämtar den inloggade användarens Id i var User.