原创:------转载请注明出处,谢谢!-------------
终于开通博客了,好像我这句话在前面的随笔中写过!而且是在我的第一篇随笔中!我查询了一下我的随笔,果不其然!终于写博文了,哦,好像我也写过!也是我的第一篇随笔。啊,敢情自己是不是有点健忘,还是确实没有在博客园留下点什么?
今天终于逮到这个机会!在我废寝忘食般的在浩瀚的网络中踏踏实实的学习了VS2010+.Net+MVC3+EF4.1(解释一下EF4.1:全名是Entity Framework4.1,下同)环境下的Code First开发模式的一个完整实例,我终于鼓起勇气,抓住这个机会,在博客园中写一下学习的经历还有成果。
希望有三:
第一,作为自己日后回想当年的见证,想象自己当年(2013年8月22日周围这段时间)还这样干过;
第二,给自己学习鼓劲,居然自己一个什么都不知道的小伙子也能把它搞定,虽然这种搞定算不上完美,其实我还有很多并不清楚的地方等着自己去学习完善;
第三,在网络上看到过很多这样的实例分析,其中我捡取了精华的部分做成了今天我贴出来的属于我自己的成果。由于网络浩淼,真真正正寻到一篇好的可以立马搞定这方面的文章确实有点牵强,所以,我想看到我这篇博文的新手(其实我也是新手,老鸟就路过了或者多给我指正我更求之不得~),能从中快速理解和学习到MVC3+EF4.1下的Code First开发步骤,减少自己在网络上搜索学习带来不必要的弯路;同时,我也说了我也是这方面的新手,所以,期望各位对以下的内容多加指正,多提意见和建议。好了,说了一大箩筐,还是上正文吧!
第一步:当然,我们要搭好这样的环境!我的配置是WIN2003+IIS6.0+MSSQL2008,环境是VS2010+Framework 4+SP1+MVC3+EF4.1。在这个环境下我要做的是一个学生信息的管理和班级信息的管理,用的开发模式是Code First(模式还有Database First和Model First),同时做到他们的关联对应的小应用。好,开始啦!
第二步:在vs2010中直接点:文件->新建->项目,如果是英文版的就是File->New->Project,如下图:
接下来就是这个样子了:
接下去做这些:
然后点OK后,来到了这个页面:
再OK,就到了真正的新项目了,生成的项目文件如下图,这个项目名BlogMVC3是可以改的:
接下去,我们要实现具体的开发了。第一,添加引用,因为我们这要用到EntityFramework 4.1(具体到哪里下载百度一下吧),所有我们要把它添加进来,然后还要加一个System.Data.Entity,还是贴图吧,看下面:
添加进来这2项后,开发正式开始了,先添加类在Models中,具体的添加这3项,其中Pager.cs不管,这个是分页的类:
添加每个类的时候添加上字段,关联啊这些东西,下面以Student.cs为例如下:
具体我不赘述了,图片上都写着呢,当然,在添加这个类之前要先添加班级类Grade.cs,否则这个类中的public virtual Grade grade{get;set;}会报错,当然,你后添加这个Grade类也同样会解决这个错误的。而且,这个上面写的验证的要using 一下,using哪些命名空间呢?这2个:System.ComponentModel.DataAnnotations;和System.ComponentModel;
接下去说,添加完这些后,就要添加上下文这个类StudentContext了,这个类继承自DbContext类,这个DbContext具体是什么,现在不深究。看图:
在这个部分,我看到网上很多并不止这么些的,其实还有很多什么规则,我们就先不加这个部分,当然,对当前的部分运行一点都不影响,当然,我也没有深究这个部分,具体是什么意思我也不知道,接下来还是贴图,到下一步了:
看这个配置文件,在图上已经说的很明白了,这个WWW就对应上图中的那个BASE("WWW"),数据库名就随便了,当然,这个连接串是自己写的,手动添加的在web.config中,Code First不会做这个的,还有下面一个图:
关于上图呢,我发现,如果添加我现在注释的这个其中一行(其实这2行的意思是差不多的,就是初始化数据库),然而,不添加没有关系,一点不影响,所以大家看到的我注释了。然后我们点编译一下:
这个时候如果项目一切没有错的话,就可以正常运行了!按理说,按照我上面来做基本没有错误了。
这个时候大家可能有疑问了,数据库文件呢,不急,打开MSSQL2008,看到没,自动生成了:
是不是惊叹,Code First,就这么简单,神奇。
好了,运行,或者点F5,到了生成界面,如下:
新增一个看看:
这个部分就不多说了,在图上都说明白了,当然,在添加学生的时候,那个在读班级的下拉框的值是要先添加的,否则提交不了,因为这个字段是不能少的,新增后回到列表页面:
这里我们用的刘德华的名字,不知道会不会侵权,如果有,大哥原谅一下,没有别的意思的~,好了,看看结果,很简单吧,也很直观,然后编辑:
就这样,删除也一样,他会提示删除确认的,当然,现在新增和修改的数据都会实时的在数据库中更新的,这个不用担心,一切尽在Code First的掌握之中。
OK,终于搞定了,最简单的Code First实例,看到了吧!这个搞了我2个多钟啊,从8点40到11点,啊,手都有点酸了,好预览一下我的博文吧!
最后上一句话:路漫漫其修远兮,吾将上下而求索!