为预订申请创建复杂的模型

时间:2015-04-04 07:17:59

标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-4

我正在创建一个使用ASP.NET MVC 4和Entity Framework租用足球场的应用程序。遗憾的是,我不知道如何解决一周中不同日期和时间的田地价格问题。我制作了一个模型(我在下面展示),但我不确定这是否是解决问题的最佳方法。 让我再解释一下这个应用程序。这些是该问题最相关的实体:

SportCenter

public class SportCenter
{
    public int SportCenterID { get; set; }
    public string Name{ get; set; }

    public virtual IList<OpeningHour> OpeningHours { get; set; }
    public virtual ICollection<Field> Fields { get; set; }
    public virtual ICollection<Booking> Bookings { get; set; }

}

预订

public class Booking
{
    public int BookingID { get; set; }

    [DataType(DataType.Date)]
    public DateTime Day { get; set; }

    public string StartHour { get; set; }

    public string EndHour { get; set; }

    public int SportCenterID { get; set; }
    public int ClientID { get; set; }
    public int FieldID { get; set; }

    public virtual SportCenter SportCenter { get; set; }
    public virtual Client Client { get; set; }
    public virtual Field Field { get; set; }

}

字段和价格

public class Field
{
    public int FieldID { get; set; }
    public String Name { get; set; }
    public virtual ICollection<Price> Prices { get; set; }
}

public class Price
{
    public int PriceID { get; set; }
    public int Day { get; set; }
    public string StartingHour { get; set; }
    public decimal Value { get; set; }
}

更清楚的是,当运动中心开放时,每个场地的每一天和每小时都有不同的价格。多数民众赞成将产生一个像这样的表(我有一个很好的形象,但我不能附上,因为我的声誉)

---------- Mon - Tue - Wed - Thur - Fri - Sat - Sun
-----------------------------------------------------
13:00 --- Close - Close - Close - Close - Close - Close
14:00 --- Close - Close - Close - Close - Close - Close 
15:00 --- $400 - $50 - $23 - $22 - $90 - $90 - $90
16:00 --- $300 - $70 - $34 - $34 - $90 - $90 - $90
17:00 --- $240 - $60 - $53 - $55 - $90 - $90 - $90
18:00 --- $320 - $78 - $85 - $96 - $40 - $90 - $90

我可以达到这一点,也许是一个公认的解决方案,但我不知道如何在.cshtml页面中表示这一点,并让用户查看和编辑内容。总而言之,问题是两个:

  • 这是价格模型结构问题的最佳解决方案(或至少是可接受的解决方案)吗?

  • 如何在浏览器中表示此信息,让用户查看和编辑一周中每天和每小时的价格。

谢谢!

PD:抱歉我的英文

编辑: 现在我可以上传,谢谢;)

enter image description here

EDIT2:

这就是我实际上对前端的看法。与其他情况相同,不知道这是向用户表示信息的最佳方式,还是我遗漏了某些内容。

<div>
    <table>
        <tr>
            <th></th>
            <th>MON</th>
            <th>TUE</th>
            <th>WED</th>
            <th>THU</th>
            <th>FRI</th>
            <th>SAY</th>
            <th>SUN</th>
        </tr>
        <tr>
            <th>09:00</th>
            <td><input value="300" type="text"/></td>
            <td><input value="300" type="text" /></td>
            <td><input value="300" type="text" /></td>
            <td><input value="300" type="text" /></td>
            <td><input value="300" type="text" /></td>
            <td><input value="300" type="text" /></td>
            <td><input value="300" type="text" /></td>
        </tr>
    </table>
</div>

0 个答案:

没有答案