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

原文地址:https://www.cnblogs.com/LeeSki/p/12267799.html