Code First模式我们称之为“代码优先”模式,使用Code First模式进行EF开发时开发人员只需要编写对应的数据类(其实就是领域模型的实现过程),然后自动生成数据库。这样设计的好处在于我们可以针对概念模型进行所有数据操作而不必关系数据的存储关系,使我们可以更加自然的采用面向对象的方式进行面向数据的应用程序开发。
 
下面开工了
创建一个控制台应用程序,创建两个类Orders.cs和OrdersDetail.cs
    public class Orders
{
[Key] //主键
public int Id { get; set; }
[StringLength()] //长度
public string OrdersCode { get; set; }
public int CustomerID { get; set; }
public System.DateTime CreateDate { get; set; }
public virtual List<OrdersDetail> OrdersDetailList { get; set; }
}
public class OrdersDetail
{
[Key] //主键
public int Id { get; set; }
public int ProductID { get; set; }
[StringLength()]//长度
public string ProductName { get; set; }
public string UnitPrice { get; set; }
public int OrderId { get; set; }
public virtual Orders Orders { get; set; }
}

下一步,通过NuGet安装EntityFramework。

 
然后创建OrdersContext.cs
    public class OrdersContext : DbContext
{
public DbSet<Orders> Orders { get; set; }
public DbSet<OrdersDetail> OrdersDetail { get; set; }
}

客户端调用

 class Program
{
static void Main(string[] args)
{
var d = DateTime.Now.Date.ToString("yyyyMM");
var ord = new Orders
{
OrdersCode = "",
CustomerID = ,
CreateDate = DateTime.Now
};
using (var context = new OrdersContext())
{
context.Orders.Add(ord);
context.SaveChanges();
}
Console.WriteLine("OK");
Console.ReadLine();
}
}

如果是第一次使用EF Code First的朋友一定会有疑问,我们没有进行任何数据库配置,增加了一条数据通过查询确实保存上了,那么我们的数据到底在哪呢?事实上如果用户不进行数据库配置EF默认会使用“.\SQLEXPRESS”数据库实例,我就不截图了。
 
下面我们使用自己的数据库,需要配置App.config,也就是数据库连接:
  <connectionStrings>
    <add name="OrdersContext" connectionString="Data Source=.;Database=OrdersDB;UID=sa;PWD=123456;" providerName="System.Data.SqlClient"></add>
  </connectionStrings>
在次运行程序:

 
 
好了完成,点击下载代码
 
 

03—Code First的更多相关文章

  1. webpack 学习笔记 03 Code Splitting

    Introduction 对于较大的web 应用来说,将所有的代码文件压缩成一个文件是不合适的,在部分代码文件只有特殊情况下才被需要的情况下,这无疑是一种浪费.webpack 提供了讲代码文件分块的能 ...

  2. Linux学习之探索文件系统

    Linux,一起学习进步-    ls With it, we can see directory contents and determine a variety of important file ...

  3. (三)获取iphone的IMSI

    今天的任务是 iPhone上怎样获取 imsi 信息 来判断所属运营商,资料找了很久!总体有两种方案,但是其中一种好像不行 这里我都记录下来吧: 1: 这是使用coreTelephony.framew ...

  4. 实现highcharts放大缩小

    原文地址:http://www.stepday.com/topic/?800 当我们将图表某个区域放大值某一个倍数后发现刻度间隔距离也放大了,由于刻度间隔还是原来初始所设定的值,从而让局部数据的X轴刻 ...

  5. 部分还款-还款试算接口与还款接口-python

    一.还款试算.还款接口, 1.只传入参数loan_Code 2.还款接口参数化以下: "loanCode": loanCode1,"orderId": orde ...

  6. 关于reduce的使用方法

    var rowData=[ {data:4,date:'06',code:'cr_3',name:'桥吊3'}, {data:1,date:'03',code:'cr_1',name:'桥吊1'}, ...

  7. c cpp编程用到的系统边角与其拾遗

    拾遗 Q:unix编程怎么查一个函数在哪个头文件中 A: 可以用诸如 man 3 printf Q: man后面接个数字什么意思,如man 3 printf A:如下 man man中的引用 下表显示 ...

  8. 几个递进的make file

    春节在家写的几个递进的make file,部分有点问题.接下来 有空我要把GNU make的手册看完.不然这方面太菜了. GNU make手册 都需要make先设置环境变量BUILD_MODE为run ...

  9. 编译hotspot8

    编译hotspot8 ubuntu desktop 18 全新准备与编译过程再记录下: # 建议使用此gcc和g++版本,过高版本比如gcc7或引发编译报错 sudo apt-get install ...

随机推荐

  1. 数字麦克风PDM转PCM与STM32 I2S接口应用----重要文档列表

    数字麦克风PDM脉冲到PCM信号需要一个二次采样,ST 提过了PDM2PCM的软件包,可以完成上面的工作.软件包源码没有开源,使用手册也简洁的让人抓狂,我觉得可能是因为ST更高级的MCU直接带了硬解码 ...

  2. editor does not cantain a main type——解决

    editor does not cantain a main type 这个错误就是包名与路径不对

  3. Javascript性能优化阅读笔记

    第一章 加载和执行 大多数浏览器都是用单一进程处理UI界面的刷新和JavaScript的脚本执行,所以同一时间只能做一件事,Javascript执行过程耗时越久,浏览器等待响应的时间就越长. 所以,H ...

  4. Oracle的查询-自连接概念和联系

    查询出员工姓名,员工领导姓名 select e1.ename,e2.ename from emp e1,emp e2 where e1.mgr = e2.empno; 结果 自连接:站在不同角度把一张 ...

  5. java中讲讲PrintWriter的用法,举例?

    [学习笔记] 1.2 PrintWriter的用法 PrintWriter和PrintStream类似,只不过PrintStream是针对字节流的,而PrintWriter是针对字符流的. 例:1.2 ...

  6. 集成板的CodeBlocks编译器配置相关文档

    如需安装包请后台留言!! 原文链接:https://w.url.cn/s/A1RSfZP 打开安装包进行安装,除安装路径大家可以自行调整外, 其他默认即可.最后安装完成,CodeBlocks的大门即将 ...

  7. Redis学习存档(1)——安装

    以虚拟机中的Linux系统(CentOS 6.5)中安装Redis为例 一.下载Redis 使用wget进行下载,可能部分系统不带wget命令,则yum下载即可 yum -y install wget ...

  8. Devexpress xaf针对某个用户登录后在面板中设置导航无效的解决方法

    Devexpress xaf框架生成的项目默认情况下导航栏是显示在左侧,有时候我们用某个账户登录后,发现导航栏无法显示在左侧,操作十分不方便.我们可以去数据库删除当前登录用户的自定义布局 解决方法如下 ...

  9. MangoDB CSharp Driver

    1.引用MongoDB for C# Driver 从网上下载C#访问MongoDB的驱动,得到两个DLL: MongoDB.Driver.dll MongoDB.Bson.dll 将它们引用到项目中 ...

  10. EFcore的 基础理解<二> shadow 特性

    接着上一篇.在MyEFTestContext 类中添加这个方法 protected override void OnModelCreating(ModelBuilder modelBuilder) { ...