实体框架核心删除与对象相关的所有数据

时间:2017-08-02 10:42:55

标签: asp.net-core entity-framework-core

我在ASP.Net Core中启动了一个项目,我创建了一个在db上下文中引入的对象。该对象具有属性,该属性是另一个对象,并且具有作为另一个对象的属性。这听起来很混乱,但我会把这些课程放在下面,以使其更清晰。

<nav class="navbar navbar-default  navbar-inverse" role="navigation">
                          <div class="navbar-header">

                              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                                  <span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
                              </button> <a class="navbar-brand" href="#">Brand</a>
                          </div>

                          <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                              <ul class="nav navbar-nav">
                                  <li class="active">
                                      <a href="#">Link</a>
                                  </li>
                                  <li>
                                      <a href="#">Link</a>
                                  </li>
                                  <li class="dropdown">
                                      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown<strong class="caret"></strong></a>
                                      <ul class="dropdown-menu">
                                          <li>
                                              <a href="#">Action</a>
                                          </li>
                                          <li>
                                              <a href="#">Another action</a>
                                          </li>
                                          <li>
                                              <a href="#">Something else here</a>
                                          </li>
                                          <li class="divider">
                                          </li>
                                          <li>
                                              <a href="#">Separated link</a>
                                          </li>
                                          <li class="divider">
                                          </li>
                                          <li>
                                              <a href="#">One more separated link</a>
                                          </li>
                                      </ul>
                                  </li>
                              </ul>
                              <form class="navbar-form navbar-left" role="search">
                                  <div class="form-group">
                                      <input class="form-control" type="text">
                                  </div>
                                  <button type="submit" class="btn btn-default">
                                      Submit
                                  </button>
                              </form>
                              <ul class="nav navbar-nav navbar-right">

                                  <li class="dropdown">
                                      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown<strong class="caret"></strong></a>
                                      <ul class="dropdown-menu">
                                          <li>
                                              <a href="#">Action</a>
                                          </li>
                                          <li>
                                              <a href="#">Another action</a>
                                          </li>
                                          <li>
                                              <a href="#">Something else here</a>
                                          </li>
                                          <li class="divider">
                                          </li>
                                          <li>
                                              <a href="#">Separated link</a>
                                          </li>
                                      </ul>
                                  </li>
                              </ul>
                          </div>

                      </nav>

这是我的dbcontext代码:

public class Schedule
{
    public Schedule()
    {
        Days = new List<DayComponent>();

        DateTime day = DateTime.Now;
        for (int i = 0; i < 10; i++)
        {
            bool ok = false;
            do
            {
                if (day.DayOfWeek == DayOfWeek.Saturday || day.DayOfWeek == DayOfWeek.Sunday)
                {
                    day = day.AddDays(1);
                }
                else
                {
                    ok = true;
                    Days.Add(new DayComponent(day));
                    day = day.AddDays(1);
                }
            } while (!ok);
        }
    }

    public ICollection<DayComponent> Days { get; set; }

    public string Id { get; set; }
}

public class DayComponent
{
    public DayComponent()
    {
        Hours = new List<HourComponent>();
    }

    public DayComponent(DateTime day)
    {
        if (day == null)
        {
            throw new ArgumentNullException(nameof(day));
        }
        Day = day;

        Hours = new List<HourComponent>();

        Hours.Add(new HourComponent { Hour = 9.00F });
    }

    public DateTime Day { get; set; }

    public List<HourComponent> Hours { get; set; }

    public string Id { get; set; }
}

public class HourComponent
{
    public HourComponent()
    {
        Status = StatusComponent.Liber;
    }

    public float Hour { get; set; }

    public StatusComponent Status { get; set; }

    public string Id { get; set; }
}

public enum StatusComponent
{
    Free = 0,
    Busy
}

所以,我的问题是当我从数据库中删除一个Schedule对象时,就像我在下面发布的代码一样,它只删除了Schedule并使ScheduleId从Days数据库为null,但我想删除所有与该时间表相关的数据(其日期和时间)。

public class ArushiDbContext : IdentityDbContext<ArushiUser>
{
    public ArushiDbContext(DbContextOptions<ArushiDbContext> options) : base(options)
    { }
    public DbSet<Schedule> Schedule { get; set; }

    public DbSet<DayComponent> Days { get; set; }

    public DbSet<HourComponent> Hours { get; set; }
}

那么,如何删除与Schedule对象相关的所有数据?

0 个答案:

没有答案
相关问题