ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

.Net Core控制台程序使用EF Core读写SQLite

2020-04-04 17:57:38  阅读:233  来源: 互联网

标签:Core SQLite set get EF db System using public


开发工具:vs2019;操作系统:win10

代码下载地址:

链接:https://pan.baidu.com/s/1dv37YxXCqwnTpRfeputc8A
提取码:6a2l

 

1、Nuget包的引用

新建一个名为ConsoleApp1的 .Net Core控制台应用程序,然后添加一些Nuget程序包。

Microsoft.EntityFrameworkCore.Sqlite
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.Json

2、创建配置文件

新建一个名为appsettings.json的配置文件,内容如下:

{
  "exclude": [
    "**/bin",
    "**/bower_components",
    "**/jspm_packages",
    "**/node_modules",
    "**/obj",
    "**/platforms"
  ],
  "ConnectionStrings": {
    "db": "Data Source=db/blogging.db"
  }
}

右击appsettings.json文件属性,修改复制到输出目录的值为“如果较新则复制”。

3、创建模型

新建一个文件夹Models,然后在该文件夹下创建Blog.cs,内容如下:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1.Models
{
    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }

        public ICollection<Post> Posts { get; set; }
    }
}

在Models文件夹下创建Post.cs,内容如下:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApp1.Models
{
    public class Post
    {
        public int PostId { get; set; }
        public string Title { get; set; }
        public string Content { get; set; }

        public int BlogId { get; set; }
        public Blog Blog { get; set; }
    }
}

最后在同样目录下创建BloggingContext.cs,内容如下

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace ConsoleApp1.Models
{
    public class BloggingContext:DbContext
    {
        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }

        private IConfiguration configuration;

        public BloggingContext()
        {
            configuration = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json").Build();
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite(configuration.GetConnectionString("db"));
        }
    }
}

4、创建数据库

先创建一个名为db的文件夹,然后打开程序包管理控制台,在控制台下输入以下命令:

Add-Migration InitialCreate
Update-Database

创建成功后,会发现db目录下有一个blogging.db数据库。右击blogging.db属性,修改复制到输出目录的值为“如果较新则复制”。

5、使用模型

打开Program.cs,替换成以下内容:

using EFCoreSqliteTest.Models;
using System;

namespace EFCoreSqliteTest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var db = new BloggingContext())
            {
                db.Blogs.Add(new Blog { Url = "https://blog.csdn.net/lms99251" });
                var count = db.SaveChanges();
                Console.WriteLine("{0} records saved to database", count);

                Console.WriteLine();
                Console.WriteLine("All blogs in database:");
                foreach (var blog in db.Blogs)
                {
                    Console.WriteLine(" - {0}", blog.Url);
                }

                Console.ReadKey();
            }
        }
    }
}

运行程序,控制台窗口中会出现以下内容

 

标签:Core,SQLite,set,get,EF,db,System,using,public
来源: https://www.cnblogs.com/xubao/p/12632882.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有