gpt4 book ai didi

c# - MVC3 Entity Framework 多对多附加列

转载 作者:行者123 更新时间:2023-11-30 18:04:01 24 4
gpt4 key购买 nike

我是 asp.net、mvc3 和 Entity Framework 的新手。我正在尝试开发一个带有 Entity Framework 和代码优先的 mvc3 程序。所以我有两个具有多对多关系的类。

一个类称为“用户”,另一个类是“类(class)”。

 public class Course : IValidatableObject
{
[...]
public virtual ICollection<User> Users { get; set; }
[...]
}

public class User : IValidatableObject
{
[...]
public virtual ICollection<Course> Courses { get; set; }
[...]
}

所以,这行得通。但是现在我需要一个额外的字段来保护类(class)注册的状态。有没有我不知道的简单方法?

我这样试过:

 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; }
}

但这使得添加或编辑相关数据变得更加困难。例如,我还没有设法将创建类(class)的用户自动添加到 CourseUsers 表中。

最佳答案

不,没有更简单的方法可以做到这一点。将任何其他字段添加到联结表后,必须将其映射为实体以允许您访问该字段。它不再是纯粹的多对多关系。它是您模型中的一个新实体,具有两个一对多关系。

关于c# - MVC3 Entity Framework 多对多附加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com