使用Code Fisrt步骤

1、开启VS,创建控制台项目:CodeFirstDemo1


2、利用NuGet引进 Entity Framework类库


         图住:右击项目名称,在弹出的选项菜单选择【管理NuGet程序包(N)】
      
       图注:在选择或搜索EntityFramework,当前最新版本为6.3.1


       图注:添加成功后会多3个引用,和一个packages.config文件,App.config内容也发生了相应的变化
      
3、添加实体类文件(POCO)    Category.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirstDemo1
{
class Category
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; } }
}

4、在配置文件中创建数据库连接字符串,<configuration>节点内加,其中Model1 需要在DbContext用到,用来关联数据库,CodeFirstSample为数据库名称(不需要在SQL Server Management Studio中先建数据库)

<connectionStrings>
          <add name="Model1" connectionString="data source=.;initial catalog=CodeFirstSample;persist security info=True;user id=sa;password=123456;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
     </connectionStrings>

5、添加上下文类CodeFirstContext继承DbContext(需引入命名空间 using System.Data.Entity;),名字随意,建议末尾加Context

using System;
using System.Collections.Generic;
using System.Data.Entity;//
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirstDemo1
{
class CodeFirstContext : DbContext
{
public DbSet<Category> Categories { get; set; } public CodeFirstContext()
: base("name=Model1")//配置文件中的数据库连接字符串名称Model1
{ } protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//在这里写映射到数据库表和字段的规则,不写为EF默认
}
}
}

6、访问(操作)实体类,编辑Program类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace CodeFirstDemo1
{
class Program
{
static void Main(string[] args)
{
using (var context = new CodeFirstContext())
{
//添加一个分类
var category = new Category { Name = "水果", Description = "水果分类的描述。" };
context.Categories.Add(category);
context.SaveChanges(); //
var q = from c in context.Categories
select c;
foreach (var item in q)
{
Console.WriteLine("{0} {1} {2}", item.Id, item.Name, item.Description);
}
Console.ReadKey();
}
}
}
}

7、试运行,结果
   


    图注:数据库和表,字段都生成成功,到这就完成了一次最小限度的完整的Code Fisrt示例。

后续问题

如上图的表字段,Name的类型长度是max,表的名称我不想叫Categories,如果我再加个子表如 Product,该如何用Code First实现呢?

这个时候就需要用到什么有备注的地方OnModelCreating  这个方法内写映射规则了。

简单Demo 使用Code Fisrt步骤的更多相关文章

  1. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  2. android JNI 简单demo(2)它JNI demo 写

    android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...

  3. 服务网关Ocelot 入门Demo系列(01-Ocelot极简单Demo及负载均衡的配置)

    [前言] Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butt ...

  4. 20个令人惊叹的深度学习应用(Demo+Paper+Code)

    20个令人惊叹的深度学习应用(Demo+Paper+Code) 从计算机视觉到自然语言处理,在过去的几年里,深度学习技术被应用到了数以百计的实际问题中.诸多案例也已经证明,深度学习能让工作比之前做得更 ...

  5. Django实战(一)之简单Demo

    菜鸟教程上Django安装可供参考: 参考链接: http://www.runoob.com/django/django-install.html 菜鸟教程上如果不行的话,下面博客网址可以供参考 Li ...

  6. Spring环境搭建及简单demo

    1. Spring框架简介(以下这段话可用于面试求职) Spring为JavaEE开发提供了一个轻量级的解决方案,主要表现为, IOC(或者叫做DI)的核心机制,提供了bean工厂(Spring容器) ...

  7. 设计模式之单例模式的简单demo

    /* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...

  8. 使用Spring缓存的简单Demo

    使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...

  9. Managed DirectX中的DirectShow应用(简单Demo及源码)

    阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...

随机推荐

  1. 【python-字典】判断python字典中key是否存在的

    一般有两种通用做法: 第一种方法:使用自带函数实现: 在python的字典的属性方法里面有一个has_key()方法: #生成一个字典 d = {'name':Tom, 'age':10, 'Tel' ...

  2. hdu 1130 How Many Trees? 【卡特兰数】

    题目 题意:给你一个数字n,问你将1~n这n个数字,可以组成多少棵不同的二叉搜索树. 1,2,5,14--根据输出中的规律可以看出这是一个卡特兰数的序列.于是代用卡特兰数中的一个递推式: 因为输入可取 ...

  3. poj 2352 stars 【树状数组】

    题目 题意:按y递增的顺序给出n颗星星的坐标(y相等则x递增),每个星星的等级等于在它左边且在它下边(包括水平和垂直方向)的星星的数量,求出等级为0到n-1的星星分别有多少个. 因为y递增的顺序给出, ...

  4. bootstrap datetimepicker

    一.datepicker 早期的 二.datetimepicker 适用于bootstrap2,3兼容性不太好 三.在github上找了个不错的:https://github.com/Eonasdan ...

  5. nginx实现unigui群集

    nginx实现unigui群集 在笔者写此文的时候,UNIGUI1.50.x的版本已经发布,其提供的HyperServer已经支持群集. 有网友还专门为此做了群集方面的测试: 从上图可以看出:群集总共 ...

  6. 设置这个属性,progress就可以变成和背景一起的了

    这个是放在Panel上的,

  7. SQL Server主要系统视图说明

    SELECT * FROM sys.all_columns --显示属于用户定义对象和系统对象的所有列的联合--https://docs.microsoft.com/zh-cn/sql/relatio ...

  8. Windows编译Opencv

    下载安装CMake 下载Opencv源码 打开CMake,设置源码路径和生成路径,点击Configure选择要生成的版本.(这里要多次Configure,直到所有红色消失!) 勾选BUILD_open ...

  9. C# Winform模仿百度日历

    想写博客不知道从何处开始,就从回忆开始吧. 第一个就从自定义日历控件开始 产生背景: 大概2015年时候有个项目要用到日历,用默认日历展示给用户看,用户毫不客气都说界面太丑,最好做成像百度日历那样方便 ...

  10. 探究Entity Framework如何在多个仓储层实例之间工作单元的实现及原理(2018-05-31修改部分严重错误代码)

    前言 1.本文的前提条件:EF上下文是线程唯一,EF版本6.1.3. 2.网上已有相关API的详细介绍,本文更多的是作为我自己的个人学习研究记录. 3.2018-05-31修改DbSession.cs ...