zoukankan      html  css  js  c++  java
  • ASP.Net Core -- EF Core

    1:概念

            EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可。

            EF Core 支持多种数据库引擎:

        Microsoft SQL Sever

        SQLite

        Npgsql

        MySQL

        ......

    2:获取EF Core

         打开NuGet程序包管理器控制台,输入:Install-Package Microsoft.EntityFrameworkCore.SqlServer

    3:模型

       EF Core 是通过一个模型进行数据库访问的。模型由实体类和表示与数据库中的会话组成的,以及允许你查询和保存数据派生的上下文。

       既可以从现有数据库生成模型,也可以使用EF 迁移来完成从模型生成数据库,也就是Database First 和 Code First。

    4:Code First

          Code First 也就是通过EF迁移来完成从模型生成数据库。就是先写代码,然后生成数据库。

    一:创建项目

    1.创建一个ASP.NET Core WEB 应用程序,然后新建一个Model文件夹,创建一个名为Client的实体类:

    using System.ComponentModel.DataAnnotations;
    
    namespace MyProject.Model
    {
        public class Client
        {
            [Key]
            public int ID { get; set; }
            public string Name { get; set; }
            public int Age { get; set; }
            public string Hobby { get; set; }
            public string Pwd { get; set; }
    
        }
    }

    注:这个类就是一会生成数据库后数据库中的表

    2.在appsettings.json中添加数据库连接字符串:

    {
      "ConnectionStrings": {
        "SqlserverConnection": "Data Source=.;Initial Catalog=MyProject;User ID=sa;Password=sql2012"
      }
    }

    3.创建一个名为Context的文件夹,并在里边创建一个名为DataContext的类:

    using Microsoft.EntityFrameworkCore;
    using MyProject.Model;
    
    namespace MyProject.Context
    {
        public class DataContext : DbContext
        {
            public DataContext(DbContextOptions<DataContext> options) : base(options)
            {
    
            }
            public DbSet<Client> Client { get; set; }
        }
    }

    4.然后在startup中获取连接字符串即可:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.AspNetCore.Http;
    using Microsoft.EntityFrameworkCore;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    using MyProject.Context;
    
    namespace MyProject
    {
        public class Startup
        {
            public readonly IConfiguration _configuration;
            public Startup(IConfiguration configuration)
            {
                _configuration = configuration;
            }
            
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc();
    
                services.AddDbContext<DataContext>(options =>
                {
                    options.UseSqlServer(_configuration.GetConnectionString("SqlserverConnection"));//获取数据库连接字符串
                });
            }
            public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
    
                app.Run(async (context) =>
                {
                    await context.Response.WriteAsync("Hello World!");
                });
            }
        }
    }

    5.最后使用命令迁移,即可在SqlServer中生成对应的数据库:

    打开NuGet程序包管理控制台,先输入 Add-Migration FirstMigration,在输入update-Database。迁移成功后,会创建数据库,以及会在项目中生成一个Migrations文件夹,里面时迁移记录

     感觉好麻烦呀,小白刚刚学习,还请大佬指教指教呀,感激不尽!

  • 相关阅读:
    计算机网络 3.* 数据通信技术基础 .1
    计算机网络3.2&3.3(第二节介质&第三节多路复用)
    python mooc 3维可视化<第一周第二&三单元>
    python mooc 3维可视化<第一周第一单元>
    conda 下配置环境
    第二周<岭回归>
    第二周<线性回归>
    第二周<导学/分类>
    iOS UILabel详解
    开始iOS 7中自动布局教程(一)
  • 原文地址:https://www.cnblogs.com/dcy521/p/12257255.html
Copyright © 2011-2022 走看看