zoukankan      html  css  js  c++  java
  • MVC初体验-ModelFirst(26)

     根据EF进行开发主要有三大类型

     根据数据库中的已有数据表进行开发的(如之前的示例博文),称为DBFirst;

    ModelFirst是利用EF生成.edmx模型,然后按照模型的属性在数据库中生成对应的表;

    如何生成模型:

    ①新增ADO.NET实体数据模型,确定,选择空EF设计器模型;

    ②右键,新增,选择实体,(也可以从左侧的工具箱中选择实体,建议使用右键操作);

    什么是EF中的实体:EF中的实体就是继承自DbContext类的上下文类中的,DbSet类型的实体类。EF API 将这样的每个实体映射成数据库表,并且实体中的每个属性映射成表的数据列。

    实体名称和实体集名称设置为一样的,选择是否设置键属性;

    ④在实体模型视图上,右键新增(可以选择标量属性或者导航属性:什么是标量属性和导航属性

    标量属性最后会在对应实体模型的这张数据表上生成一个列;

    标量属性的设置,针对string:

     

     如果是string类型的,对应到数据库中的类型就不确定了,一共有char varchar nchar nvarchar四种类型,四种类型之间的区别

    简单来说,如果只存英文字母这种,用char和varchar,如果存储内容包含中文信息,那么就使用Unicode编码的nchar 和 nvarchar;

    这些设置都可以在属性中的Facet/方面中进行修改(只有string类型具有方面属性的修改)

     例如这样的结果最后在数据库中生成的列类型就是nvarchar(50)

    一般的属性中还有两个值需要注意:

     第一个属性表示这个列要不要做成标识(数据库中的标识是什么?);

    实体键属性表示这个列是不是主键;

    生成完模型后右键设计界面的空白区域,点击“添加代码生成项”,选择EF 6.X DbContext生成器即可生成类代码

    注意:一个表引用另一张表,只能引用另一张表的主键信息(三范式要求);

     外键约束:从模型生成数据库

    增加列如何增加(这个 地方需要注意,十分恶心

    新增属性还是在下图界面使用鼠标右键增加

     添加完成后使用右键“根据模型生成数据库”,生成SQL语句文件,但是这个SQL不要执行,切记

    因为在这个SQL语句文件中写了,如果有表那就会删除再创建,所以不能执行,但是SQL还是要生成,因为要建立映射关系

    要添加列的话直接去数据库中添加即可,就可以使用了

    End

  • 相关阅读:
    Bzoj 3654 图样图森波 题解
    1.27号考试记录
    博弈论入门小结
    「考试总结」2020-11-18 爆零
    「补题」考试题泛做
    CSP2020 游记,总结与题解
    Luogu2827 「NOIP2016」 蚯蚓
    【学习笔记】四毛子算法
    「考试反思」2020-11-04 临行
    「考试反思」2020-10-31 警示
  • 原文地址:https://www.cnblogs.com/LeeSki/p/12267799.html
Copyright © 2011-2022 走看看