上一篇文章总结了MSSQL、MYSQL如何使用EF Code First,这篇文章总结下如果SQLite的数据库如何使用EF Code First,两种方式类似,只是SQLite需要引用一些外部库

如果使用Nuget:添加System.Data.SQLite和System.Data.SQLite.EF6.Migrations就可以了,System.Data.SQLite会自动加入其它的库,添加引用后最终会有如下库

System.Data.SQLite

System.Data.SQLite.Core

System.Data.SQLite.EF6

System.Data.SQLite.EF6.Migrations

System.Data.SQLite.Linq

第一步:建立实体类(和上一篇文章一样,只是用来演示,就没改)

例如:用户类(测试用,没写那么多,只有简单的创建时间,用户昵称和唯一标识),这个类是数据库中的表映射到C#中的对象,所以可以说是C#中对象,也可以说是数据库中的表。

 public class UserTable

    {

        public string Id { get; set; }

        public DateTime BuildTime { get; set; }

        public string NickName { get; set; }

    }

第二步:这里多一步,创建数据库配置类

    public class Configuration : DbMigrationsConfiguration<DbModels>

    {

       //设置初始化行为和参数

        public Configuration()

        {

            AutomaticMigrationsEnabled = true;

            AutomaticMigrationDataLossAllowed = true;

            //注意这里第一个参数是entityFramework节点下的provider的invariantName属性

            SetSqlGenerator("System.Data.SQLite", new SQLiteMigrationSqlGenerator());

        }

      //添加数据库初始数据,我使用的时候,每次运行程序都会执行,不是只有创建数据库的时候才执行,请知道的高手告知

        protected override void Seed(DbModels context)

        {

            context.User.Add(new UserTable()

            {

                BuildTime = DateTime.Now,

                Id = Guid.NewGuid().ToString(),

                NickName = "郭铭心",

            });

            context.SaveChanges();

        }

    }

第三步:建立数据库上下文

创建类DbModels,也可以直接创建ADO.NET 实体数据模型,然后选择空CodeFirst模型

内容如下:

 public class DbModels : DbContext

    {

        //构造方法,base("这里是使用的ConnectString"),设置连接字符串

        public DbModels() : base("name=DbModels")

        {       

                   //使用指定的配置类,配置数据库

                   Database.SetInitializer(new MigrateDatabaseToLatestVersion<DbModels, Configuration>());

        }

        public virtual DbSet<UserTable> User { get; set; }

    }

第四步:配置文件

entityFramework节点下,需要设定预处理程序

<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />

connectionStrings节点下,设定在应用程序根目录创建

<add name="DbModels" connectionString="data source=.\Sqlite_Db.db" providerName="System.Data.SQLite" />

第五步:可以在程序的入口载入初始数据,读取数据,添加数据或修改数据后,注意使用SaveChanges()方法保存数据到数据库

文章信息

创建时间
2023-12-11
作者
郭铭心
是否所有人可见
所有人可见
最后修改日期
2023-12-11
点击数
190