使用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. 通过domoticz restful接口更新数据 c# 控制台程序

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  2. spring-数据库操作组件的实现

    Ok,今天看了下spring数据库组件实现的源码,简要的做下笔记. 首先是JdbcTemplate,其实这个技术的实现很简单,就是一个模板类,把执行sql的主干流程都写好了,比如connection的 ...

  3. 二分图匹配-HK算法

    先把代码贴上,其他南京回来再补了.. #include <cstdio> #include <cstdlib> #include <cstring> #includ ...

  4. Java学习--基本数据类型的定义和运算

    例1: public class DataDemo05{ public static void main(String args[]){ char ch1 = '\"' ; // 表示的是一 ...

  5. cocos 2dx 通过循环实现界面图形的摆放

    首先创建一个一维数组 this.starSprites = new Array(); 然后知道星星的间距和坐标后通过如下代码实现位置的摆放 for(var i = 0; i < 6; i++){ ...

  6. FNDLOAD使用大全

    FNDLOAD使用大全   Syntax FNDLOAD [username/password] 0 Y [mode] [configuration file] [target data file] ...

  7. (25)uniGUI for C++ builder之UniHTMLMemo初使用及uniGUI如何调用javaScript

    (25)uniGUI for C++ builder之UniHTMLMemo初使用及uniGUI如何调用javaScript 2018年09月29日 22:58:20 中国银行之路在脚下 阅读数:11 ...

  8. 轻量级Config文件AppSettings节点编辑帮助类

    using System.Configuration; using System.Windows.Forms; namespace Allyn.Common { public class XmlHep ...

  9. 【友情链接】各位dalao的博客

    同省神犇 HA队长 __stdcall HA chty_syq为文文讲过字符串 HA cdcq为文文讲过后缀数组① ② Bluesky007超强的 外省神犇 知名OIer黄学长 一个可爱的蓝孩子qwq ...

  10. django-子项目

    当我们开始做一个项目的时候 ,当我们做的项目越来越大的时候py文件已经不足以分担 并且看起来不清晰   所以我们需要 新建一个子项目   这样的话可以方便管理 我们要建立子项目的话先进入那个项目的文件 ...