• EF框架搭建小总结--CodeFirst代码优先


    前言:之前在下总结编写了一篇 EF框架搭建小总结--ModelFirst模型优先 博文,看到一段时间内该博文的访问量蹭、蹭蹭、蹭蹭蹭...往上涨(实际也不是很多,嘿嘿),但是还是按捺不住内心的喜悦(蛮有成就感的),感觉为大家做了一点点小小的贡献,在下也就再接再厉(趁风大,再浪浪),总结一篇  CodeFirst代码优先的博文,若有不当之处,还望大家斧正。

    Code First介绍:     Code First模式是一种很cool的模式,手动创建POCO(全称Plain Old Class Object,也就是最基本的CLR Class,实体类)类,数据层DbContext及映射关系,通过Database.SetInitializer(本次采用dbcontext.Database.CreateIfNotExists方法)生成数据库,自动生成方便快速、更易维护、非常灵活。

    使用工具: win7操作系统,vs2012, sqlserver2008

    开始

    1.创建新项目

     2.创建完项目后,需要引用"EntityFramework"程序包,且看如何引入

    2.1 在【引用】上单击右键,选中【管理NuGet程序包(N)】

    2.2 在弹出的窗口上选择【联机】,找到【EntityFramework】程序包,点击安装

    2.3 安装后的效果

    3 开始上代码

     3.1 创建一个User实体类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace CodeFirst
    {
       public class User
        {
            public int Id { set; get; }
            public string Name { set; get; }
            public string Password { set; get; }
        }
    }
    

    3.2 创建连接上下文的类,该类的一些说明在代码里已标注

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;// DbContext类需要引入的类库
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace CodeFirst
    {
        //该类继承于DbContext类,
        //DbContext是EntityFramework很重要的部分,连接类与数据库的桥梁,是与数据库通信的主要类
        public class CodeFirstDbContext : DbContext
    
        {
              //构造函数
            public CodeFirstDbContext()
                : base("name = CodeFirstDbContext")//根据配置文件中链接数据库
                                                   //CodeFirstDbContext会在app.config中进行配置
            { 
            }
            public DbSet<User> User { get; set; }
           
        
        }
    }
    

      

    3.3 在配置文件App.config中添加内容

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
      </startup>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>
    
      <!--连接本地sql server数据库需要配置的文件-->
      <connectionStrings>
        <add name="CodeFirstDbContext" connectionString="Data Source=.;Initial Catalog=DatabaseName;Integrated Security=True;" providerName="System.Data.SqlClient"/>
      </connectionStrings>
      
    </configuration>
    

      其中Data Source = . 表示连接的是本地数据库,Initial Catalog=DatabaseName;表示一会创建的数据库名字为DatabaseName

    3.4 在主程序中创建数据库,数据表,并填入字段

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace CodeFirst
    {
        class Program
        {
            static void Main(string[] args)
            {
                //创建上下文
                CodeFirstDbContext dbcontext = new CodeFirstDbContext();
                //创建数据库
                dbcontext.Database.CreateIfNotExists();
                //创建表,并将字段加入进去
                User u = new User();
                u.Name = "li";
                u.Id = 1;
                u.Password = "123456";
                //将实体赋予上下文,并添加到表里
                dbcontext.User.Add(u);
                //保存
                dbcontext.SaveChanges();
                Console.WriteLine("成功");
                Console.ReadKey();
    
            }
        }
    }
    

      运行主程序后,便会在数据库中成功创建你的数据库,数据表。

    结果:

     

  • 相关阅读:
    互联网秒杀设计
    生产者消费者模式实现
    Ping CAP CTO、Codis作者谈redis分布式解决方案和分布式KV存储
    VIM使用学习笔记 : 按键说明
    Cookie的有效访问路径
    简单的Cookie记录浏览记录案例
    认识Cookie和状态管理
    Java异常
    Java接口基础
    String常用方法
  • 原文地址:https://www.cnblogs.com/txqx/p/7692313.html
Copyright © 2020-2023  润新知