C# MVC3实体框架多对多和附加列
我不熟悉asp.net、mvc3和实体框架。 我正在尝试先用实体框架和代码开发一个mvc3程序。 所以我有两个类,它们有多对多的关系 一个类称为“用户”,另一个类称为“课程”C# MVC3实体框架多对多和附加列,c#,asp.net-mvc-3,entity-framework-4,many-to-many,ef-code-first,C#,Asp.net Mvc 3,Entity Framework 4,Many To Many,Ef Code First,我不熟悉asp.net、mvc3和实体框架。 我正在尝试先用实体框架和代码开发一个mvc3程序。 所以我有两个类,它们有多对多的关系 一个类称为“用户”,另一个类称为“课程” 公共类课程:IValidatableObject { [...] 公共虚拟ICollection用户{get;set;} [...] } 公共类用户:IValidatableObject { [...] 公共虚拟ICollection课程{get;set;} [...] } 所以,这是可行的。但是现在我需要一个额外的字段
公共类课程:IValidatableObject
{
[...]
公共虚拟ICollection用户{get;set;}
[...]
}
公共类用户:IValidatableObject
{
[...]
公共虚拟ICollection课程{get;set;}
[...]
}
所以,这是可行的。但是现在我需要一个额外的字段来保护课程注册的状态。
有没有一个简单的方法我不知道
我这样试过:
public class Course : IValidatableObject
{
[...]
public virtual ICollection<CourseUser> CourseUsers { get; set; }
[...]
}
public class User : IValidatableObject
{
[...]
public virtual ICollection<CourseUser> CourseUsers { get; set; }
[...]
}
public class CourseUser
{
[Key, ForeignKey("Course"), Column(Order = 0)]
public int Course_ID { get; set; }
[Key, ForeignKey("User"), Column(Order = 1)]
public string User_ID { get; set; }
public int Status { get; set; } //{ pending, approved }
public virtual Course Course { get; set; }
public virtual User User { get; set; }
}
公共类课程:IValidatableObject
{
[...]
公共虚拟ICollection CourseUsers{get;set;}
[...]
}
公共类用户:IValidatableObject
{
[...]
公共虚拟ICollection CourseUsers{get;set;}
[...]
}
公共课教师
{
[键,外键(“课程”),列(顺序=0)]
public int Course_ID{get;set;}
[键,外键(“用户”),列(顺序=1)]
公共字符串用户_ID{get;set;}
公共int状态{get;set;}/{pending,approved}
公共虚拟课程{get;set;}
公共虚拟用户用户{get;set;}
}
但这使得添加或编辑相关数据变得更加困难。
例如,我还没有成功地将创建课程的用户自动添加到
CourseUsers
表中。没有更简单的方法。将任何附加字段添加到联接表后,必须将其映射为实体,以允许您访问该字段。它不再是纯粹的多对多关系。它是模型中的一个新实体,具有两个一对多关系。好的,请回答。也许你可以帮我更新相关的表格。我通过Membership.GetUser().ProviderUserKey.ToString()
获得用户id,但我真的不知道如何在创建新课程期间更新相关表。我在www.asp.net上读了很多教程,但我认为它们有点让人困惑。这不是它的工作原理。你问了一个问题就得到了答案。如果你有一个新问题,可以单独提问。评论不是为了问另一个无关的问题。
public class Course : IValidatableObject
{
[...]
public virtual ICollection<CourseUser> CourseUsers { get; set; }
[...]
}
public class User : IValidatableObject
{
[...]
public virtual ICollection<CourseUser> CourseUsers { get; set; }
[...]
}
public class CourseUser
{
[Key, ForeignKey("Course"), Column(Order = 0)]
public int Course_ID { get; set; }
[Key, ForeignKey("User"), Column(Order = 1)]
public string User_ID { get; set; }
public int Status { get; set; } //{ pending, approved }
public virtual Course Course { get; set; }
public virtual User User { get; set; }
}