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文件夹,里面时迁移记录

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

  • 相关阅读:
    Code Forces Gym 100886J Sockets(二分)
    CSU 1092 Barricade
    CodeChef Mahesh and his lost array
    CodeChef Gcd Queries
    CodeChef GCD2
    CodeChef Sereja and LCM(矩阵快速幂)
    CodeChef Sereja and GCD
    CodeChef Little Elephant and Balance
    CodeChef Count Substrings
    hdu 4001 To Miss Our Children Time( sort + DP )
  • 原文地址:https://www.cnblogs.com/dcy521/p/12257255.html
Copyright © 2011-2022 走看看