基于Oracle的EntityFramework的WEBAPI2的实现(二)——使用DbFirst

之所以使用DbFirst而没有使用CodeFirst是因为考虑到现实的情况中,我们之所以会选择oracle而不是SQL SERVER,一方面是因为之前公司已经在使用Oracle,而且有好多我们需要用到的数据表已经存在了。所以,一般可以确认的是,部分表已经事先存在的这情况是有的,而CodeFirst虽然也有办法解决,但是,我们的Leader,同事似乎也会习惯手动改表而非告诉你让你写Code然后改表。所以DbFirst是一个不错的选择,其实也算是代替了代码生成品的一部分功能。

右击我们的项目,点添加·新建项·C#·数据·ADO.NET实体数据模型,取个名字,比如“OrclModel”点确定。

image

弹出如下的界面

image

选择第一个【来自数据库的EF设计器】,下一步。

image

按图中的箭头依次操作,注意如下:

  1. 【将web.config中的连接设置另外为】的地主一定要写一个好看的名字,因为后面使用linq的时候,都要用到它,建议使用Db开头Con结尾,中间是数据库库名的缩写或者名称。
  2. 【测试连接】一定要试,否则后面出问题就不好办了。
  3. 【是否将连接字符串加密】一般我是选不加的,毕竟是自己的服务器上面,人家都进了服务器了,而且是.NET,你在应用程序中设置此数据根本没用,人家ILSPY直接可以看到你的源码,根本没用,所以,为了方便,也不废那么多事儿了,就直接选择明文。
  4. 【连接类型】如果选TNS,那么在前一篇中web.config里面的setting部分,TNS_ADMIN是一定要加上的,否则会找不到TNS文件。

完成后,点击确定。后面就是熟悉的entityframework操作部分,与微软官网的走法一模一样,此处也不必再涉及过多,只是【选表】作映射的时候,尽量只选我们用到的表,毕竟,之前数据库已经存在了,而且里面有大量的我们用不到的表,多则无益。生成了edmx文件后,点一下保存,然后重新生成项目(原因是如果不重新生成项目 ,虽然映射文件有了,但是T4代码并没有生成cs文件,所以我们与表映射的类暂时还没有,我们可以使用重新生成来触发T4的编译工作)。

转载请注明作者及来源:张峻崎,博客园

posted @ 2015-10-23 13:21  ensleep  阅读(1625)  评论(1编辑  收藏  举报