1
00:00:00,920 --> 00:00:07,710
首先我们要说的,原来的分析序列图
2
00:00:09,250 --> 00:00:10,410
我们做了一些调整
3
00:00:10,660 --> 00:00:14,240
这是原来的,也是大家之前的视频
4
00:00:14,710 --> 00:00:16,430
里面看到的可能是这样的
5
00:00:16,990 --> 00:00:24,290
我们做了一些调整,做了一些修改
6
00:00:28,970 --> 00:00:30,400
当然,这个调整之后
7
00:00:30,410 --> 00:00:33,530
我们的类图上面也会有相应的调整
8
00:00:34,070 --> 00:00:36,280
因为这个操作有调整
9
00:00:36,290 --> 00:00:37,640
类图上操作会有调整
10
00:00:43,700 --> 00:00:46,850
类本身倒是没有调整
11
00:00:46,860 --> 00:00:49,420
但是它的操作会有调整
12
00:00:51,820 --> 00:00:54,570
我们一会在剖析代码
13
00:00:54,580 --> 00:00:59,160
运行代码的时候会这个跟对应来看
14
00:01:00,670 --> 00:01:01,800
这是修订的,这是原来的
15
00:01:03,200 --> 00:01:10,070
首先,我们来看代码的映射
16
00:01:11,650 --> 00:01:14,320
之前我们视频里面演示过
17
00:01:14,620 --> 00:01:16,020
EA怎么映射代码
18
00:01:16,820 --> 00:01:18,240
但是那个映射代码
19
00:01:18,250 --> 00:01:21,870
是EA本身原有的功能
20
00:01:23,600 --> 00:01:26,780
我们看我们这边的映射代码
21
00:01:26,790 --> 00:01:30,500
比如说,菜品,订单也好
22
00:01:30,510 --> 00:01:31,540
我们看订单好了
23
00:01:35,270 --> 00:01:42,740
订单,这里面,首先第一个,我们的属性
24
00:01:43,480 --> 00:01:44,880
我们每个都给它加了
25
00:01:46,010 --> 00:01:46,810
getter setter
26
00:01:46,820 --> 00:01:47,450
就是property
27
00:01:48,450 --> 00:01:49,830
直接就给它配上了
28
00:01:53,250 --> 00:01:57,330
也就是说,这部分
29
00:01:59,840 --> 00:02:01,750
跟我们之前生成的是不一样的
30
00:02:01,920 --> 00:02:03,630
之前是私有的属性
31
00:02:04,170 --> 00:02:08,120
现在就把私有属性跟getter setter放在一起
32
00:02:08,670 --> 00:02:09,750
就变成property
33
00:02:11,050 --> 00:02:14,170
这个在EA里面怎么生成
34
00:02:14,300 --> 00:02:16,010
也是可以生成的
35
00:02:16,260 --> 00:02:20,110
你就针对每一个属性
36
00:02:20,120 --> 00:02:25,070
这里点Property,选中它,这里点
37
00:02:26,210 --> 00:02:30,120
可以在这里设,设完之后你再生成
38
00:02:30,810 --> 00:02:33,440
就得到这样的代码了
39
00:02:34,920 --> 00:02:37,880
这个在EA里面可以调
40
00:02:40,050 --> 00:02:42,160
但是下面这部分是生成不了的
41
00:02:42,170 --> 00:02:44,420
因为序列图里面
42
00:02:44,430 --> 00:02:45,660
内容生成代码的
43
00:02:45,670 --> 00:02:46,940
EA目前是做不到的
44
00:02:47,290 --> 00:02:49,320
它有这个例子说可以做到
45
00:02:49,330 --> 00:02:50,800
而且它给了一个例子
46
00:02:50,810 --> 00:02:52,920
然后你按照它做真的能做到
47
00:02:53,530 --> 00:02:55,600
但是你离开了那个例子
48
00:02:55,920 --> 00:02:58,290
自己去创建一个
49
00:02:58,300 --> 00:03:00,400
然后再操作,操作不了
50
00:03:01,030 --> 00:03:01,710
为什么
51
00:03:01,720 --> 00:03:04,070
我也不知道,去查了资料
52
00:03:04,080 --> 00:03:05,430
看官网,看论坛
53
00:03:05,710 --> 00:03:09,510
没有,而EA且也没有给过更多的资料
54
00:03:09,640 --> 00:03:12,550
包括视频包括教程什么都没有给出来
55
00:03:14,980 --> 00:03:17,400
可能这个情况是比较特殊的
56
00:03:17,410 --> 00:03:19,950
里面可能通过了特别的配置
57
00:03:20,040 --> 00:03:21,430
这个就不太了解了
58
00:03:21,830 --> 00:03:25,380
目前来说,这个序列图生成代码
59
00:03:26,870 --> 00:03:29,060
EA还是不能够实用的
60
00:03:30,820 --> 00:03:34,530
哪个比较好,之前我有个教程里写UModel
61
00:03:36,230 --> 00:03:38,220
相对来说还比较好一点
62
00:03:42,880 --> 00:03:43,640
所以如果说
63
00:03:43,650 --> 00:03:46,520
我们坚持要用EA来生成代码
64
00:03:46,530 --> 00:03:49,990
这部分是没问题了,这部分可以
65
00:03:52,270 --> 00:03:53,340
下面这部分不行
66
00:03:55,560 --> 00:03:57,210
如果坚持要生成
67
00:03:57,220 --> 00:04:01,390
可以把一个类的文件分成两个
68
00:04:02,050 --> 00:04:05,300
一个类的内容分成两个文件来放
69
00:04:05,870 --> 00:04:09,570
一个文件是我们人编码进去的
70
00:04:09,930 --> 00:04:11,600
一个是EA生成的
71
00:04:12,890 --> 00:04:16,240
EA生成部分随着模型更新
72
00:04:16,510 --> 00:04:22,850
而这部分就在另外一个文件里面
73
00:04:22,860 --> 00:04:23,930
我们人来维护
74
00:04:28,910 --> 00:04:33,100
这是映射代码的,映射数据库
75
00:04:33,110 --> 00:04:35,540
之前已经演示过了
76
00:04:36,150 --> 00:04:36,970
这几个类
77
00:04:37,570 --> 00:04:41,900
12345
78
00:04:41,910 --> 00:04:45,930
12345,映射数据库
79
00:04:45,940 --> 00:04:53,560
我们的数据库在这里
80
00:04:53,890 --> 00:04:57,000
但是这个数据库并不是从EA映射得来的
81
00:04:57,900 --> 00:04:59,900
我们刚才讲了,用的是
82
00:04:59,910 --> 00:05:03,390
codefirst这个路线,先有代码
83
00:05:04,650 --> 00:05:08,950
然后代码再迁移到这个数据库里面去
84
00:05:09,580 --> 00:05:11,760
所以我们有这个之后
85
00:05:11,770 --> 00:05:16,680
我们建立了一个context类
86
00:05:20,460 --> 00:05:22,680
然后数据库在这里
87
00:05:24,410 --> 00:05:32,830
然后创建迁移,迁移到数据库里面去
88
00:05:35,290 --> 00:05:40,600
所以这个数据库模型,它是从类得来的
89
00:05:41,600 --> 00:05:43,050
当然映射的规则
90
00:05:43,060 --> 00:05:46,580
跟EA直接映射是差不多的
91
00:05:47,670 --> 00:05:49,340
除了这个表的名字
92
00:05:49,350 --> 00:05:50,900
这里每个这里
93
00:05:50,910 --> 00:05:53,140
微软默认给加了一个s之外
94
00:05:53,710 --> 00:05:54,870
其他没有区别
95
00:05:56,380 --> 00:05:57,840
ID什么也是自己给加上
96
00:05:57,850 --> 00:05:59,760
主键外键都是自己给加上的
97
00:06:01,930 --> 00:06:03,700
这是数据库
98
00:06:03,830 --> 00:06:05,780
我填了一些数据在里面了
99
00:06:07,320 --> 00:06:13,610
首先,餐台,这里搞了两个
100
00:06:13,620 --> 00:06:16,370
我们示意一下就行了,菜品分类
101
00:06:19,560 --> 00:06:23,490
搞了1 2 3 4 5 6个
102
00:06:28,480 --> 00:06:36,250
然后,菜品,搞了
103
00:06:36,260 --> 00:06:39,840
这么几个,两个菜,两个主食
104
00:06:45,050 --> 00:06:46,080
其他的还没有
105
00:06:48,260 --> 00:06:53,960
下面,我们来看代码的情况
106
00:06:56,890 --> 00:07:00,010
我们把它和序列图对比
107
00:07:01,650 --> 00:07:09,320
你看,第一个,食客提交餐台号码,这个在哪里
108
00:07:10,430 --> 00:07:12,930
这个就对应我们的界面
109
00:07:12,940 --> 00:07:15,710
我们就是用控制台的界面了
110
00:07:15,720 --> 00:07:20,260
你看,食客提交餐台号码(应为是Id)在这里
111
00:07:25,240 --> 00:07:27,180
控制台要求输入一个ID
112
00:07:30,820 --> 00:07:37,500
然后解析输入,得到餐台ID的参数
113
00:07:37,510 --> 00:07:41,040
这是第一个
114
00:07:41,430 --> 00:07:45,150
然后第二个,它调用了下单控制的
115
00:07:45,640 --> 00:07:48,390
准备点菜的操作
116
00:07:50,960 --> 00:07:53,460
就是这一句了
117
00:07:54,320 --> 00:07:57,790
这一句,准备点菜的操作
118
00:08:00,710 --> 00:08:06,820
在这里,参数就是一个餐台ID了
119
00:08:09,730 --> 00:08:13,670
准备点菜,它到了这一步了