1

2 つの単純なモデル クラスがあります。

  1. Service
  2. Attendee

各サービスは1名以上でご利用いただけます。すべての出席者がチェック ボックスとして表示されるサービスに基づいてビューを表示し、選択されている/選択されていない場合は、データベース内の対応するサービスに追加または削除する必要がありますCreateEdit

1週間以上ビルドしようとしていますが、成功しません! どんな助けでも大歓迎です。

これらのクラスの私のコードは次のとおりです。

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();

    }
4

0 に答える 0