asp.net core创建web api 并且连接sqlite 使用代码直接创建数据库 code first

15 篇文章 0 订阅
8 篇文章 0 订阅

环境visual studio 2017免费版,.net core 2.2

1.创建asp.net core web api 项目

.net core 选择当前最新版本,项目选择API类型,不进行身份验证,点击确定。

此时一个web api项目就创建好了。

直接运行,先看效果。

博主在其他电脑上都可以正常运行,但是就在写blog的这台电脑上报错了,提示

在Program.cs文件中找不到webhost

解决的办法就是重新安装一下.net core 2.2,点击repair

重启电脑后,终于可以运行了 浏览器中显示


2.创建sqlite数据库

1.在NuGet中安装

2.创建一个数据库模型的类

新建一个Models的文件夹,在这个文件夹下创建一个Model.cs的类

3.修改这个类

Model.cs

using Microsoft.EntityFrameworkCore; //DbContext
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WebApplication3.Models
{
    public class Model:DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
                optionsBuilder.UseSqlite("Data source=d:/mydb.db");    //创建文件夹的位置        
        }

        public DbSet<Database> Databases { get; set; }
    }

    public class Database
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}

4.修改Startup.cs

public void ConfigureServices(IServiceCollection services)
        {
            
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            using (var database = new Model())    //新增
            {
                database.Database.EnsureCreated(); //如果没有创建数据库会自动创建,最为关键的一句代码
            }
        }

只要在ConfigureServices方法中添加4行代码就可以了,记得要添加一名Model的命名空间哦

5.再次运行

网页上的效果还是一样

但是d盘下面自动创建了mydb.db

 

Databases的结构和我们创建的Database类一样。


3.操作数据库

修改Controllers文件夹下面的ValuesControllers.cs

 // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            var database = new Model();
            database.Databases.Add(new Database { Name = "张三" });
            database.SaveChanges();
            return new string[] { "value1", "value2" };
        }

 

只修改[httpget]下面。

添加三行代码,在执行。

在浏览器中出现   ["value1","value2"]后查看数据库

已成功添加。

说明已经可以操作数据库了。

至于数据详细的增删改查会在以后的博文中写。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要在项目中添加以下 NuGet 包: - Microsoft.EntityFrameworkCore.Sqlite - Microsoft.EntityFrameworkCore.Tools 接下来,创建一个 DbContext 类,并在构造函数中指定 Sqlite 数据库的文件路径,例如: ```csharp using Microsoft.EntityFrameworkCore; public class MyDbContext : DbContext { public DbSet<MyEntity> MyEntities { get; set; } public MyDbContext() : base(new DbContextOptionsBuilder<MyDbContext>() .UseSqlite("Data Source=mydatabase.db") .Options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<MyEntity>() .HasKey(e => e.Id); } } public class MyEntity { public int Id { get; set; } public string Name { get; set; } } ``` 在上面的代码中,`MyEntity` 类表示数据表中的一行记录,`MyDbContext` 类表示整个数据库,包含了 `MyEntities` 属性,表示数据表。 其中,通过 `UseSqlite` 方法指定 Sqlite 数据库的文件路径,如果该文件不存在,EF 会自动创建它。 在 `OnModelCreating` 方法中,可以配置数据表的相关信息,例如主键、索引等。 最后,可以通过以下代码创建数据表和插入数据: ```csharp using (var db = new MyDbContext()) { db.Database.EnsureCreated(); var entity = new MyEntity { Name = "test" }; db.MyEntities.Add(entity); db.SaveChanges(); } ``` 在上面的代码中,`EnsureCreated` 方法会自动创建数据表,如果数据表已经存在,则不会执行任何操作。 `MyEntities.Add` 方法会向数据表中插入一行记录,`SaveChanges` 方法会将更改保存到数据库中。 注意,Sqlite 数据库只支持基本数据类型,例如整数、字符串等。如果需要使用其他数据类型,需要进行类型转换。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值