使用Code First(EF Core.Sqlite)

说到Code-first,与其对应的就是Database-First,Model-First和Code-first。

1.Database First是基于已存在的数据库,利用某些工具(如Vs提供的EF设计器)创建实体类数据库对象与实体类的匹配关系等,你也可以手动修改这些自动生成的代码及匹配文件。
2.Model First 这种方式是先利用某些工具(如VS的EF设计器)设计出实体数据模型及他们之间的关系,然后再根据这些实体、关系去生成数据库对象及相关代码文件。
3.Code First 这种方式需要先写一些代码,如实体对象,数据关系等,然后根据已有的代码描述,自动创建数据对象,这种方式在前一篇文章已经简单说过了。但其实这种方法与Model First是非常类似的。我们自己写的代码,其实就是用代码表示实体模型,而Model First是用可视化的方式描述了实体模型。

总之一点,Database-First就是先有数据库,从数据库入手,Model-First和Code-first先从代码入手,再生成数据库。

使用EF Core建立Code First,完成数据库迁移。

使用sqlite数据库

1.建立一个.net core web api项目

2.安装Microsoft.EntityFrameworkCore.Sqlite

3. 建立一个实体

   public class User
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int age { get; set; }
    }

4.建立DataContext

继承DbContext,初始化构造函数,继承base,再把User类写入

    public class DataContext : DbContext
    {
        public DataContext(DbContextOptions<DataContext> options)
            : base(options)
        {

        }

        public DbSet<User> Users { get; set; }
    }

5.配置数据库 

            var connrection = "FileName=./demo.db";
            services.AddDbContext<DataContext>(options =>
            {
                options.UseSqlite(connrection);
            });

这里可以把Sqlite,换成别的数据库地址

注意:这里必须写 FileName=./demo.db  否则后面生成的时候报错

6.安装Microsoft.EntityFrameworkCore.tools

7. 配置appsettings.json

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-previewl-final",
      "imports": [
        "portable-net 45+win8+dnxcore50",
        "portable-net 45+win8"
      ]
    }
  }
}

8.在程序包管理器控制台中,输入Add-Migration xxx

9.在输入Update-Database,创建数据库完成

 9.使用

别忘记 context.SaveChanges();

using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WebApplication6.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
        };

        private readonly ILogger<WeatherForecastController> _logger;
        private readonly DataContext context;

        public WeatherForecastController(ILogger<WeatherForecastController> logger,DataContext context)
        {
            _logger = logger;
            this.context = context;
        }

        [HttpGet]
        public IEnumerable<WeatherForecast> Get()
        {
            User user = new User();
            user.age = 15;
            user.Id = 1;
            user.Name = "张三";
            context.Add(user);
            context.SaveChanges();
            var rng = new Random();

            var n = context.Users.Where(n => n.Name == "张三");
            foreach (var item in n)
            {
                Console.WriteLine(item.Name);
            }
           
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateTime.Now.AddDays(index),
                TemperatureC = rng.Next(-20, 55),
                Summary = Summaries[rng.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }
}

拓展

建立的类,最终都是要存到数据库中,上面的类并没有给字段增加注释或者数据的大小,主外键,约束等等条件,这些其实都可以增加,可以参考下面的链接。

Code First 数据注释 - EF6 | Microsoft Docs

来源:使用Code First(EF Core.Sqlite)_efcore sqlite-CSDN博客

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用 EF Core 创建 SQLite 数据库,可以按照以下步骤进行: 1. 安装 EF CoreSQLite NuGet 包。 在 Visual Studio 中,可以通过 NuGet 包管理器来安装 EF CoreSQLite。可以在“工具”->“NuGet 包管理器”->“程序包管理器控制台”中使用以下命令来安装它们: ```bash Install-Package Microsoft.EntityFrameworkCore.Sqlite Install-Package Microsoft.EntityFrameworkCore.Tools ``` 2. 创建 DbContext 类。 创建一个类继承自 DbContext,该类表示一个数据库上下文,用于访问和操作数据库。在 DbContext 类中,可以通过 DbSet 属性来表示要在数据库中创建的实体类。 ```csharp public class MyDbContext : DbContext { public DbSet<Person> People { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlite("Data Source=mydatabase.db"); } ``` 上述代码表示创建了一个 DbContext,其中包含一个名为 People 的 DbSet 属性,表示要在数据库中创建一个名为 "People" 的表。 3. 创建实体类。 在 DbContext 类中,使用 DbSet 属性表示要在数据库中创建的实体类,如上述代码所示。实体类通常包含表中的列,每个属性表示一个列。 ```csharp public class Person { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } ``` 上述代码表示创建了一个名为 Person 的实体类,其中包含 Id、Name 和 Age 三个属性,分别表示表中的三个列。 4. 创建数据库。 可以使用以下命令在 SQLite 数据库中创建表: ```bash dotnet ef migrations add InitialCreate dotnet ef database update ``` 执行上述命令后,EF Core 将会创建一个名为 "mydatabase.db" 的 SQLite 数据库,并且在该数据库中创建一个名为 "People" 的表,用于存储 Person 实体类的数据。 希望这些步骤对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

故里2130

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值