zoukankan      html  css  js  c++  java
  • 实体框架 (EF) 入门 => 二、在全新的数据库中使用 Code First

    学习资料:http://msdn.microsoft.com/zh-cn/data/jj193542

    视频建立的控制台应用程序,我在这里使用MVC。

    一、非常有磁性的,非常优雅

    很喜欢看这个人的视频,虽然我听不太懂,也不知道他叫什么。他的声音非常有磁性,让我。。。,让我。。。。。。,百听不厌。

    看到了吗?他一边讲解,代码就一边流畅的显示在屏幕上,让你懂得,什么是优雅。

    原来也看过,但发现动手时还是无从下手,所以,不仅应该学习代码,还应该学习流程,先做什么,后做什么,为什么要这样做。

    二、建立MVC项目

    环境:vs.net2013 sql2008 ef6.1 mvc5

    image

    身份验证选择个人用户账户,只是免去自己添加验证JS的麻烦,实际开发使用  无身份验证。

    image

    image

    三、创建模型

    就像以前要先创建数据库一样,现在是先创建模型。

    image

    因为使用的是个人身份验证,所以系统自动生成一些Controler/Model/View,不用管它。

    image

    image

    image

    代码是我复制的,说明如下:

    1、BlogId 这样写能与外键列名保持一致,感觉这样好点

    2、类名用的是Blog,而不是Blogs。实体一般用单数,在生成数据表是,会自动添加成复数表名 Blogs。

    3、Post类还未建立,所以报错。但现在我们使用的是Code First,可以这样写,因为我们现在也不编译。在写一个实体类时,即使没有设计文档,心里也应该有个框框了,要建哪些实体,实体之间有什么关联。

    4、Post类一样使用单数形式,而集合使用的是同名复数 Posts 。

    5、virtual 用于延迟加载,也就是你在使用Blog实体对象时,如果不使用相关联的Post表中的数据,系统就不加载,你使用的时候,才到数据库查询相应的Post数据。

    这样可能要访问两次或多次数据库,所以一般不会使用延迟加载,而是在需要时将需要的字段一次性取回。

    因为是CodeFirst,所以,写实体属性时,应该也顺便将常规的特性加上:

    在Name上面输入[],在里面输入Display ,我就会拼这个单词,所以,每次都用她      微笑

    在Display上右键,导入命名空间。

    image

    也可以这样,输入完Display后按Ctrl + . ,然后回车,爽不?

    image

    弄成这样:

    image

    加上长度(20)还是有点用的,否则如果不小心输入了100个字符,不仅没有必要,你还要考虑列表显示的问题了。

    image

    四、创建上下文

    上面只是建立了两个实体类,如果要与数据库关联,还需要创建上下文。

    image

    image

    image

    五、安装(更新)EF,需要联网更新

    image

    若果你的VS界面下方没有 程序包管理控制台 ,按下面方式打开:

    image

    六、编辑web.config,添加连接字符串

    image

    下面该干嘛了?再看看视频

    七、生成界面

    因为是全新数据库,所以,建立了实体对象,并与上下文关联后,就可以直接写界面了。

    先编译一下。

    image

    image

    image

    八、删除原有数据库

    这时程序未运行,所以还不会生成数据库。

    先把原来的删掉,全新的吗,原来怎么应该有。

    image

    真真正正,干干净净

    九、运行列表页面

    image

    image

    空的

    十、添加记录

    image

    image

    十一,查看数据库

    刚才没用这个是因为连不上。

    image

    image

    image

    十二、模型更改

    1、Enable-Migrations

    2、修改实体对象

    image

    3、Add-Migration AddUrl

    4、Update-Database

    image

    十三、添加新模型

    image

    十四、将实体添加进上下文

    image

    十五、Add-Migration AddUser

    十六、Update-Database

    image

     
     
  • 相关阅读:
    android onTouchEvent
    AD smart pdf 中文丢失
    c# 定时器
    Android 绘制圆环
    52道Python面试题
    螺旋填数:读入两个整数m,n,输出一个m行n列的矩阵,这个矩阵是1~m*n这些自然数按照右、下、左、上螺旋填入的结果。
    Java经典练习题_Day04
    Java经典练习题_Day05
    Java 面向对象 初探
    Java Array 方法和使用
  • 原文地址:https://www.cnblogs.com/webenh/p/7898667.html
Copyright © 2011-2022 走看看