[英]ASP.net MVC Entity framework
我尝试了很多事情,但是在实体框架ASP.NET MVC中实现以下内容时遇到了问题。 请分步告诉我我应该怎么做来实现控制器和视图。 我很困惑如何实现俱乐部与经理之间的多对多关系
public class Manager:Person
{
public Manager()
{
Clubs = new HashSet<Club>();
}
public string AssignedDuty { get; set; }
public System.DateTime AssignedDate { get; set; }
public virtual ICollection<Club> Clubs { get; set; }
}
public class Club
{
public Club()
{
this.Memberships = new HashSet<Membership>();
this.People = new HashSet<Manager>();
}
public int ClubId { get; set; }
public string ClubName { get; set; }
public System.DateTime OpenDate { get; set; }
public virtual Center Center { get; set; }
public virtual ICollection<Membership> Memberships { get; set; }
public virtual ICollection<Manager> People { get; set; }
}
使用联结表定义多对多关系。 至于控制器的实现方式,请尝试以下操作: http : //www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/creating-a-controller-cs
您在模型-视图-控制器中的模型不应该关注管理器如何链接到数据库中的俱乐部。 应该只关心它们之间的关系而不是如何 。
我会这样做:
这是一篇博客文章,似乎在解释您要完成的任务: http : //www.entityframeworktutorial.net/code-first/configure-many-to-many-relationship-in-code-first.aspx
接下来,创建dbContext和connectionstring等。
请参考以下链接:
现在终于可以正常工作了,我只需要向控制器添加几行即可。 我的最终指定俱乐部看起来像这样,并且运作良好
[HttpPost, ActionName("AssignClub")]
public ActionResult AssignClub(AssignClubVM ac)
{
Manager m = db.Managers.Find(ac.manager.PersonId);
foreach (var clubid in ac.SelectedClubs)
{
m.Clubs.Add(db.Clubs.Find(clubid));
}
db.SaveChanges();
return RedirectToAction("Index");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.