EF Core6教程【一DBFirst】


前言

一、EF Core是什么?

微软提供的一款ORM框架。

二、准备

工具使用 SQL Server Management Studio (SSMS): 官网链接
数据库备份链接: 官网链接

1.安装必要的包

以下这几个包都需要安装。
在这里插入图片描述
包引用如下:
在这里插入图片描述
链接字符串查询链接: [地址](https://www.connectionstrings.com/mysq

三、DbFirst-基于数据库的逆向工程

链接: 官网
使用基架,在PMC中执行->

Scaffold-DbContext 'Data Source=localhost;Initial Catalog=AdventureWorks;Trusted_Connection=true' Microsoft.EntityFrameworkCore.SqlServer

->生成实体Model,此处有坑。
在这里插入图片描述
报错是因为主项目没有引用EFCore_DBLibrary,引用后再次执行即可,见下图。
在这里插入图片描述
也可以根据数据库中的模式,生成部分表的实体,并进行注释(Annotation)。
在这里插入图片描述
效果如下:
在这里插入图片描述
基于选定的表生成实体
Scaffold-DbContext … -Tables Artist, Album,表名
举个栗子:

dotnet ef dbcontext scaffold "server=localhost;database=efcore;uid=sa;pwd=Qwe123456;" Microsoft.EntityFrameworkCore.SqlServer --data-annotations --context EfCoreContext --context-dir Data --output-dir Models

–data-annotations:数据注释在实体上

–context EfCoreContext:上下文指定命名为 EfCoreContext

–context-dir Data:上下文保存在根目录的 Data 文件夹下

–output-dir Models:实体保存在根目录的 Models 文件夹下
————————————————
版权声明:本文为CSDN博主「xuhss_com」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xuhss_com/article/details/124311535

四、使用appsettings.json配置并访问数据库。

1.安装必要的包:

在这里插入图片描述

2.添加json配置文件(属性设置成Copy Always)

{
  "ConnectionStrings": {
    "AdevntureWorks": "Data Source=localhost;Initial Catalog=AdventureWorks;Trusted_Connection=True"
  }
}

3.获取连接字符串

BuildConfiguration方法的作用:
1、告诉解决方案从哪里获取json文件;
2、说明如何加载配置文件的内容到解决方案

class Program
    {
        private static IConfigurationRoot _configuration;
        static void Main(string[] args)
        {
            BuildConfiguration();
        }

        private static void BuildConfiguration()
        {
            _configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsetting.json", optional: true, reloadOnChange: true)
                .Build();
        }
    }

_configuration.GetConnectionString(“AdventureWorks”)即可获取到连接链接字符串。在这里插入图片描述

3.连接数据库并查询数据

// See https://aka.ms/new-console-template for more information
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;

namespace EFCore_DBLibrary
{
        class Program
        {
            private static IConfigurationRoot _configuration;
            private static DbContextOptionsBuilder<AdventureWorksContext> _optionsBuilder;
            static void Main(string[] args)
            {
                BuildConfiguration();
                BuildContextOptions();
                Console.WriteLine($"ConStr:{_configuration.GetConnectionString("AdventureWorks")}");
                ListPeople();
                Console.WriteLine();
            }

            private static void BuildConfiguration()
            {
                _configuration = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                    .Build();
            }
            static void BuildContextOptions()
            {
                _optionsBuilder = new DbContextOptionsBuilder<AdventureWorksContext>();
                _optionsBuilder.UseSqlServer(_configuration.GetConnectionString("AdventureWorks"));
            }
            static void ListPeople() {
                using var db = new AdventureWorksContext(_optionsBuilder.Options);
               var people= db.People1.OrderByDescending(x => x.LastName).Take(20).ToList();
                foreach (var item in people)
                {
                    Console.WriteLine($"{item.FirstName}-{item.LastName}");
                }
            }
        }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值