EF之Code First代码优先

 1.前言

通过英文可知,表示的是代码优先,一般创建EF都是先创建数据库,创建根据数据库的EF实体模型,而code - first 则是反过来!。。。

2.代码实战

 

我们这次创建的不是原来的数据库EF设计器,而是空的Code first 模型。如果说你的项目引用中没有entity framkwork,则需要去nuget程序包中安装ef框架(entity)

创建一个类,这个类就是数据的上下文,它的目录在MVC项目中的Model文件夹,base中的是你所创建的数据库名称,而你创建的表也是在model的这个文件夹中,

复制代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Web;  namespace MyFirstCode.Models {     public class Grade     {         public int GradeID { get; set; }         [Required]//必须唯一        [DisplayName("学生姓名")] //列名        [Column("SName")]//数据库中的列名        [StringLength(20)]//字符串长度        public string GradeName { get; set; }      } }
复制代码
using System.ComponentModel;using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema;
这是添加字段约束用到的命名空间

接下来看下我们的连接字符串部分:
复制代码
 <connectionStrings>    <add name="MyDemoDB" connectionString="server=.;database=MyDemoDB;uid=sa;pwd=sa" providerName="System.Data.SqlClient"/>  </connectionStrings>
复制代码
 
providerName="System.Data.SqlClient" 这个参数代表的是数据的来源,即来源于该命名空间下,我们也可以写成MySqlClient,当然前提是你引用了MySqlClient,呵呵,这样就对了项目迁移带来了很大的方面.

1对多的关系如何写?
假如有Student 和 Grade两个表 每个年纪有很多学生.
Student.cs:
复制代码
 [ForeignKey("NianJi")]         public int GradeID { get; set; }          /// <summary>        /// virtual 虚拟的。 延迟加载         /// </summary>        public virtual Grade NianJi { get; 
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信