博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF之CodeFirst代码先行
阅读量:6986 次
发布时间:2019-06-27

本文共 1953 字,大约阅读时间需要 6 分钟。

    为了支持以设计为中心的开发流程,EF还更多地支持以代码为中心 (code-centric) ,我们称为代码优先的开发,代码优先的开发支持更加优美的开发流程,它允许你在不使用设计器或者定义一个 XML 映射文件的情况下进行开发。

  ·允许编写简单的模型对象POCO (plain old classes),而不需要基类。

  ·通过"约定优于配置",使得数据库持久层不需要任何的配置

  ·也可以覆盖"约定优于配置",通过流畅的 API 来完全定制持层的映射。

  Code First是基于Entity Framework的新的开发模式,原先只有Database First和Model First两种。Code First顾名思义,就是先用C#/VB.NET的类定义好你的领域模型,然后用这些类映射到现有的数据库或者产生新的数据库结构。Code First同样支持通过Data Annotations或fluent API进行定制化配置。

    下面我就来进行codeFirst的演示:

    先建立控制台程序:

    

   然后新建类:

   

   新建Customer,OrderInfo,以及 HotelDbContext类

  在编码前进行相应的引用,然后进行类的编码:

  

  

  Customer类:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CodeFirst1{    public class Customer    {        public int Id { get; set; }        public string CusName { get; set; }        public virtual ICollection
order { get; set; } }}

   

   OrderInfo类:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.ComponentModel.DataAnnotations;namespace CodeFirst1{    public class OrderInfo    {        [Key]        public int Id { get; set; }        public string content { get; set; }        ///         /// 外键        ///         public int customerId { get; set; }        public Customer Customer { get; set; }    }}
     
这里要注意Key的主键的问题

  HotelDbContxt类的编写:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data.Entity;namespace CodeFirst1{    public class HotelDbContext :DbContext    {        public HotelDbContext()            : base("name=ConnCodeFirst")        {        }        public DbSet
Customer { get; set; } public DbSet
OrderInfo { get; set; } }}
     
编写成功后加上一个配置文件用来连接数据库:

  配置文件的编写如下:

   
 最后运行程序:

  

  数据库展示如下:

   

   三种EF的变现类型介绍完了,大家的EF框架是不是有很大的收获呢?也希望大家踊跃拍砖!

转载于:https://www.cnblogs.com/xzpblog/p/5117935.html

你可能感兴趣的文章
瑞幸咖啡将冲刺上半年上市:叫板星巴克 已任命首席财务官
查看>>
央视主持人张羽加盟今日头条母公司字节跳动 出任副总裁
查看>>
年终盘点篇:2018云中数据管理趋势预测
查看>>
内容电商崛起背后:这家企业瞄准短视频 靠天猫淘宝掘金
查看>>
李想创办的车和家发布智能电动车品牌“理想智造”
查看>>
智利海岸附近发生里氏5.6级地震 无人员伤亡消息
查看>>
手机上的中国“轻春运”
查看>>
中国税务机关确保减税降费政策落地生根
查看>>
中蒙二连边民互市贸易区出口额创新高
查看>>
BAT架构师总结之网站核心架构要素
查看>>
摩拜将更名为“美团单车” 网友:可送外卖吗?
查看>>
广东惠州公安一名副所长因公牺牲
查看>>
除了火药味,这里的演练还多了……
查看>>
继BERT之后,这个新模型再一次在11项NLP基准上打破纪录
查看>>
RTX 2080时代,如何打造属于自己的深度学习机器
查看>>
“破碎-重组-破碎” CSS3实现Lowpoly风格变形动画终极篇
查看>>
VKDevTool App黑盒调试工具
查看>>
那个你身边悄悄离职的人去哪儿了?IT人才流动大盘点
查看>>
精读《手写 SQL 编译器 - 智能提示》
查看>>
React.js 小书 Lesson4 - 前端组件化(三):抽象出公共组件类
查看>>