MVC Music Store 在线音乐商店示例分析(5)Order、OrderDetail

在Models文件夹中,Order.cs中的Order类订单实体。这个类字段稍微多一点其它的没有别的。

翻译后的代码如下:

1 /// <summary>
2 /// 订单 (部分类)
3 /// 添加特性标记,指定OrderId不允许绑定
4 /// </summary>
5   [Bind(Exclude = "OrderId")]
6 public partial class Order
7 {
8 /// <summary>
9 /// 订单编号
10 /// 指定类或数据列是否使用基架
11 /// 基架是基于数据库架构生成网页模板的机制。 ASP.NET 动态数据使用基架生成基于 Web 的 UI,用户可以通过这种 UI 查看和更新数据库。 此类使用 Scaffold 属性在动态数据网站中启用基架。
12 /// 基架基于数据模型动态显示页面,而不需要物理页面,从而增强了 ASP.NET 页面框架功能。
13 /// 基架提供了以下功能:
14 /// 只需少量代码或者不需代码即可创建数据驱动的 Web 应用程序。
15 /// 可缩短开发时间。
16 /// 可提供功能(包括显示、插入、编辑、删除、排序和分页功能)齐全的页面。
17 /// 可基于数据库架构进行内置数据验证。
18 /// 可提供针对每个外键或针对布尔型字段创建的筛选器。
19 /// 通过对表示表的类中的相应数据字段对象应用此特性,可以使用此类在数据模型中启用或禁用数据列基架。
20 /// 参考: http://msdn.microsoft.com/zh-cn/library/system.componentmodel.dataannotations.scaffoldcolumnattribute.aspx
21 /// </summary>
22   [ScaffoldColumn(false)]
23 public int OrderId { get; set; }
24
25 /// <summary>
26 /// 订单创建日期
27 /// </summary>
28   [ScaffoldColumn(false)]
29 public System.DateTime OrderDate { get; set; }
30
31 /// <summary>
32 /// 用户名
33 /// </summary>
34 [ScaffoldColumn(false)]
35 public string Username { get; set; }
36
37 /// <summary>
38 /// 名字
39 /// (必填、限定最大长度)
40 /// </summary>
41 [Required(ErrorMessage = "First Name is required")]
42 [DisplayName("First Name")]
43 [StringLength(160)]
44 public string FirstName { get; set; }
45
46 /// <summary>
47 /// 姓氏
48 /// </summary>
49 [Required(ErrorMessage = "Last Name is required")]
50 [DisplayName("Last Name")]
51 [StringLength(160)]
52 public string LastName { get; set; }
53
54 /// <summary>
55 /// 地址
56 /// </summary>
57 [Required(ErrorMessage = "Address is required")]
58 [StringLength(70)]
59 public string Address { get; set; }
60
61 /// <summary>
62 /// 城市
63 /// </summary>
64 [Required(ErrorMessage = "City is required")]
65 [StringLength(40)]
66 public string City { get; set; }
67
68 /// <summary>
69 /// 市州
70 /// </summary>
71 [Required(ErrorMessage = "State is required")]
72 [StringLength(40)]
73 public string State { get; set; }
74
75 /// <summary>
76 /// 邮政编码
77 /// </summary>
78 [Required(ErrorMessage = "Postal Code is required")]
79 [DisplayName("Postal Code")]
80 [StringLength(10)]
81 public string PostalCode { get; set; }
82
83 /// <summary>
84 /// 国家
85 /// </summary>
86 [Required(ErrorMessage = "Country is required")]
87 [StringLength(40)]
88 public string Country { get; set; }
89
90 /// <summary>
91 /// 电话
92 /// </summary>
93 [Required(ErrorMessage = "Phone is required")]
94 [StringLength(24)]
95 public string Phone { get; set; }
96
97 /// <summary>
98 /// 邮件地址
99 /// 使用正则表达式约定字符串值
100 /// </summary>
101 [Required(ErrorMessage = "Email Address is required")]
102 [DisplayName("Email Address")]
103 [RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}",
104 ErrorMessage = "Email is is not valid.")]
105 [DataType(DataType.EmailAddress)]
106 public string Email { get; set; }
107
108 /// <summary>
109 /// 总价
110 /// </summary>
111 [ScaffoldColumn(false)]
112 public decimal Total { get; set; }
113
114 public List<OrderDetail> OrderDetails { get; set; }
115 }

OrderDetail类用于描述订单详情。字段不多,没有什么好说的。

注释后代码如下:

1 /// <summary>
2 /// 订单详情
3 /// </summary>
4 public class OrderDetail
5 {
6 /// <summary>
7 /// 订单详情编号
8 /// </summary>
9 public int OrderDetailId { get; set; }
10 /// <summary>
11 /// 订单编号
12 /// </summary>
13 public int OrderId { get; set; }
14 /// <summary>
15 /// 相册编号
16 /// </summary>
17 public int AlbumId { get; set; }
18 /// <summary>
19 /// 数量
20 /// </summary>
21 public int Quantity { get; set; }
22 /// <summary>
23 /// 单价
24 /// </summary>
25 public decimal UnitPrice { get; set; }
26
27 /// <summary>
28 /// 订单详情所关联的相册
29 /// </summary>
30 public virtual Album Album { get; set; }
31 /// <summary>
32 /// 订单详情所关联的订单
33 /// </summary>
34 public virtual Order Order { get; set; }
35 }
原文地址:https://www.cnblogs.com/stevenhqq/p/1969055.html