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; set; }

Grade.cs:
 public class Grade{public int GradeID { get; set; }public string GradeName { get; set; }public virtual IList<Student> Students { get; set; }}

结果如图:

多对多的关系怎么写?列入角色和用户表,每个用户有很多角色即role与user表
User.cspublic virtual IList<Role> Roles { get; set; }
Role.cs
public virtual IList<User> Users { get; set; }

生成完,它会出现一个RoleUser表,这样就达到了多对多的关系.

using (var context = new Model1())
{
context.Database.Initialize(true);
}

对这个上下文进行操作的时候它才会被创建  2018-11-15  21:57:15

转载于:https://www.cnblogs.com/ZaraNet/p/9556069.html

EF之Code First代码优先相关推荐

  1. EF中数据优先,模型优先和代码优先

    看了很多文章也不是很明白,说的都太书面化了,大家看看这图一下子就明白了,哈哈 其实看图很简单,database first和model first都是通过 data model创建的edmx文件,只不 ...

  2. 基于 abp vNext 和 .NET Core 开发博客项目 - 数据访问和代码优先

    基于 abp vNext 和 .NET Core 开发博客项目 - 数据访问和代码优先 转载于:https://github.com/Meowv/Blog 本篇主要使用Entity Framework ...

  3. ef mysql code first_关于ef+codefirst+mysql(入门)

    ef+mssql详细是许多.net程序员的标配.作为一个程序员当然不能只会mssql这一个数据库,今天简单聊聊ef+mysql.推荐新人阅读. 1]首先创建一个mvc项目,如图: 创建完毕之后再nug ...

  4. 8天掌握EF的Code First开发系列之动手写第一个Code First应用

    返回<8天掌握EF的Code First开发>总目录 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 自我测试 上一篇<8 ...

  5. 8天掌握EF的Code First开发系列之3 管理数据库创建,填充种子数据以及LINQ操作详解...

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LI ...

  6. EF的Code First开发系列之动手写第一个Code First应用

    返回<8天掌握EF的Code First开发>总目录 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 自我测试 上一篇<8 ...

  7. VS Code设置代码片段(C++)

    前言 VS Code设置代码片段,官网介绍 代码片段是模板,可以快速地输入重复的代码,比如循环.条件语句.注释模板等.在vs code中代码片段会和自动提示IntelliSense(Ctrl + Sp ...

  8. SAP ABAP编辑器里的Code Completion(代码自动完成)的等待时间设置

    SAP ABAP编辑器里的Code Completion(代码自动完成)的等待时间设置:如果嫌默认的一秒等待时间太长,可以点图1右下角的图标,打开设置对话框,把1秒改成0.1秒即可.如果想研究ABAP ...

  9. .Net之代码优先gRPC服务

    介绍 该方式适用于多个服务之前都是**.Net项目**的场景 优点: 可以在 .NET 服务器和客户端之间共享 .NET 服务和数据协定类型. 无需在 .proto 文件和代码生成过程中定义协定. 操 ...

  10. 从 Google Code 迁移代码到 GitHub 上

    从Google Code迁移代码到github上的步骤: 首先访问 https://github.com/nirvdrum/svn2git 安装svn2git工具. 创建一个空白目录,进入该目录执行 ...

最新文章

  1. java ee 笔试题目,JSP经典笔试@题目(含答案)
  2. 通过一个函数对比 mgrid以及meshgrid函数
  3. sqlserver中无ldf文件附加数据库
  4. 如何优雅的绘制一棵省市区三级可选择的树?
  5. 晓庄学院计算机科学分数,南京晓庄学院计算机单招分数
  6. harbor搭建与使用
  7. 吊打面试官!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题
  8. 全网首发:FreeSwitch BANNER支持中文
  9. 订单生产计划表范本_生产计划表_用Excel 如何制作生产排单的生产计划
  10. 智慧城市数字孪生IOC系统
  11. 下钻图生成 highcharts-column-drilldown
  12. 雷神战争中简单megetexture地图制作
  13. Mac格式化fat32格式
  14. 编写程序描述影视歌三栖艺人
  15. FFmpeg简单使用:音频编码 ---- pcm转aac
  16. 宁夏统编中学计算机教材,中小学三科教材的统编
  17. 解决WPS或Word中“图片隐藏在文字下面”的问题
  18. linux如何编写crontab定时脚本,linux下编写定时任务crontab
  19. Vue--keep-alive--详解
  20. 实验吧web题(26/26)全writeup!超详细:)

热门文章

  1. 表关联关系,表的复制
  2. DataTable对象的操作问题
  3. C++线程中packaged_tack
  4. 一个远程线程注入的类
  5. JavaScript之String总汇
  6. 181106 solution
  7. 怎样解决python dataframe loc,iloc循环处理速度很慢的问题
  8. SecureCRT的安装、介绍、简单操作
  9. caffe的python接口学习(5):生成deploy文件
  10. 跨域的小小总结:js跨域及跨域的几种解决方法