繁体   English   中英

MVC3多个外键值

[英]MVC3 Multiple Foreign Key Values

我有两个简单的模型类。

  1. Service
  2. Attendee

每个服务可以有1个或更多的人参加。 我想要基于服务的“ CreateEdit视图,其中所有与会者均显示为复选框,并且任何选中/未选中的视图都应在数据库中的相应服务中添加或删除。

我已经尝试构建一个多星期了,但没有成功! 任何帮助将不胜感激。

这些类的代码如下。

public class Service
{
    public int ServiceID { get; set; }
    public string Problem { get; set; }

    public virtual ICollection<Attendie> AttendedBy { get; set; }
}

public class Attendie
{
    public int AttendieID { get; set; }
    public string Name { get; set; }

    public virtual Service Service { get; set; }
}

public class ServiceAttendiesDBContext: DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    }
    public DbSet<Service> Services { get; set; }
    public DbSet<Attendie> Attendies { get; set; }
}

public class ServiceAttendiesInitializer : DropCreateDatabaseAlways<ServiceAttendiesDBContext>
{
    protected override void Seed(ServiceAttendiesDBContext context)
    {
        base.Seed(context);

        var attendies = new List<Attendie>
        {
            new Attendie{AttendieID=1,Name="Attendie1"},
            new Attendie{AttendieID=2,Name="Attendie2"},
            new Attendie{AttendieID=3,Name="Attendie3"}
        };

        attendies.ForEach(at => context.Attendies.Add(at));
        context.SaveChanges();

        var services = new List<Service>
        {
            new Service{ ServiceID=1,Problem="Problem1",AttendedBy=new List<Attendie>()},
            new Service{ ServiceID=2,Problem="Problem2",AttendedBy=new List<Attendie>()},
            new Service{ ServiceID=3,Problem="Problem3",AttendedBy=new List<Attendie>()}
        };

        services.ForEach(ser => context.Services.Add(ser));
        context.SaveChanges();

        services[0].AttendedBy.Add(attendies[0]);
        services[0].AttendedBy.Add(attendies[1]);
        services[1].AttendedBy.Add(attendies[2]);
        services[1].AttendedBy.Add(attendies[2]);
        services[2].AttendedBy.Add(attendies[1]);
        context.SaveChanges();

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM