C# 使用Linq从数据库中获取详细信息,以便人们可以';不要创建新实体

C# 使用Linq从数据库中获取详细信息,以便人们可以';不要创建新实体,c#,asp.net-mvc,entity-framework,linq,C#,Asp.net Mvc,Entity Framework,Linq,只是学习C#,我正在家里开发一个程序 我的应用程序中有一个约会实体。我想要它,这样有人可以把他们的详细资料与选择的房间,日期和管理员(FK)在他们的处置 当他们点击按钮创建时,我希望Linq查询执行搜索,以查看是否所有条件都可用,即可以进行预约。 我现在只是在挣扎 以下是我所拥有的: var currentBooking = db.Appointments .Where(b => b.AppointmentId == appointments.AppointmentId)

只是学习C#,我正在家里开发一个程序

我的应用程序中有一个约会实体。我想要它,这样有人可以把他们的详细资料与选择的房间,日期和管理员(FK)在他们的处置

当他们点击按钮创建时,我希望Linq查询执行搜索,以查看是否所有条件都可用,即可以进行预约。 我现在只是在挣扎

以下是我所拥有的:

 var currentBooking = db.Appointments
        .Where(b => b.AppointmentId == appointments.AppointmentId)
        .Select(b => (appointments.RoomType == b.RoomType && appointments.DateOfAppointment == b.DateOfAppointment && appointments.AdministrationId == b.AdministrationId))
        .FirstOrDefault();

            if (currentBooking)
            {
                throw new Exception("The Room is already out on that date.");
            }
            else
            {
                db.Appointments.Add(appointments);
                db.SaveChanges();
                return RedirectToAction("Index");
            }

如果根据你所说的,这是一个新的约会,那么它不应该有一个id设置。接下来,您可以使用
Any
进行简单查询,以验证过滤器是否存在

var currentBooking = db.Appointments
    .Any(b => appointments.RoomType == b.RoomType 
        && appointments.DateOfAppointment == b.DateOfAppointment 
        && appointments.AdministrationId == b.AdministrationId);

if (currentBooking) {
    throw new Exception("The Room is already out on that date.");
} else {
    db.Appointments.Add(appointments);
    db.SaveChanges();
    return RedirectToAction("Index");
}

如果根据你所说的,这是一个新的约会,那么它不应该有一个id设置。接下来,您可以使用
Any
进行简单查询,以验证过滤器是否存在。我们使用它进行此类检查(唯一性等)。