Asp.net mvc 如何使用Linq+;实体框架

Asp.net mvc 如何使用Linq+;实体框架,asp.net-mvc,linq,entity-framework,Asp.net Mvc,Linq,Entity Framework,我想知道是否有人能帮我?我正试图在客房预订系统中防止活动重叠。每个事件都有一个开始日期/时间和一个结束日期/时间。我希望发生的是,如果用户尝试在已经存在的时间之间预订事件,那么它应该会出错 因此,例如,以下内容应在重叠时出错:- Event 1: - Start Date/Time: 10/08/2012 09:00 - End Date/Time: 10/08/2012 11:00 Event 2: - Start Date/Time: 10/08/2012 10:00 - End Date

我想知道是否有人能帮我?我正试图在客房预订系统中防止活动重叠。每个事件都有一个开始日期/时间和一个结束日期/时间。我希望发生的是,如果用户尝试在已经存在的时间之间预订事件,那么它应该会出错

因此,例如,以下内容应在重叠时出错:-

Event 1:
- Start Date/Time: 10/08/2012 09:00
- End Date/Time: 10/08/2012 11:00

Event 2:
- Start Date/Time: 10/08/2012 10:00
- End Date/Time: 10/08/2012 12:00
我使用的是MVC和实体框架,所以最好使用Linq解决方案


任何帮助都将不胜感激:)

你的意思是这样的:

new List<Event>()
{
    new Event() { StartsAt = DateTime.Now.AddHours(-1), EndsAt = DateTime.Now.AddHours(1) } 
};

Event newEvent = new Event() { StartsAt = DateTime.Now.AddHours(-3), EndsAt = DateTime.Now.AddHours(-2) };
bool newEventBookable = !existingsEvents.Any(x => x.StartsAt <= newEvent.EndsAt && x.EndsAt >= newEvent.StartsAt);
新列表()
{
新事件(){StartsAt=DateTime.Now.AddHours(-1),EndsAt=DateTime.Now.AddHours(1)}
};
Event newEvent=newEvent(){StartsAt=DateTime.Now.AddHours(-3),EndsAt=DateTime.Now.AddHours(-2)};
bool newEventBookable=!现有sevents.Any(x=>x.StartsAt=newEvent.StartsAt);
如果newEventBookable为false,则可以抛出一个错误


我认为这种逻辑适用于之前的、后续的、重叠的和包含的事件,但我很快就会发现它是否正确

请参阅以获取解决方案。感谢您这正是我想要的:)同意,但我发现您的建议更容易遵循。我希望允许背靠背预约,因此我将
=
更改为仅