C#.Net EF(Entity Framework 6) SQLite配置使用(codefirst)

本文主要介绍在.Net(C#)中,使用Entity Framework 操作Sqlite数据库,并且通过codefirst实现自动创建SQLite数据库和表,以及一些常用操作和配置。

1、项目中需要安装SQLite相关Nuget包 

项目名上右键 =》点击"管理Nuget程序包" =》搜索"System.Data.SQLite" =》点击 "System.Data.SQLite(x86/x64)" 、"System.Data.SQLite EF6"、"System.Data.SQLite LINQ" 这3个包进行安装。

搜索"SQLite.CodeFirst" =》点击安装

确保以下Nuget包都已安装:

System.Data.SQLite(x86/x64)
System.Data.SQLite EF6
System.Data.SQLite LINQ
SQLite.CodeFirst
Entity Framework 

2、项目中代码

1)新建ORMContext类继承DbContext

using SQLite.CodeFirst;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UtilityWeb.ORM.Models;
namespace UtilityWeb.ORM
{
    public class ORMContext : DbContext
    {
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            var sqliteConnectionInitializer = new SqliteCreateDatabaseIfNotExists(modelBuilder);
            Database.SetInitializer(sqliteConnectionInitializer);
        }
        public ORMContext() : base("ORMContext") { } //配置使用的连接名
        public DbSet EmployInfos { get; set; }
        public DbSet DeptInfos { get; set; }
    }
}

2)用到的Model类DeptInfo和EmployInfo

   public class EmployInfo
    {
        public string DeptName { get; set; }
        public string EmployName { get; set; }
        public string Gender { get; set; }
        [Key]
        public string UserCode { get; set; }
        public int RuleCode { get; set; }
        public int OrderCode { get; set; }
    }
    public class DeptInfo
    {
        public string SubDept { get; set; }
        public string DeptName { get; set; }
        public string DeptCode { get; set; }
        public string RuleCode { get; set; }
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int DeptId { get; set; }
    }

说明:[key]是配置主键[DatabaseGenerated(DatabaseGeneratedOption.Identity)]配置自增主键

3)使用操作示例代码

public static void AddDeptInfo(DeptInfo m)
        {
            using (ORMContext db = new ORMContext())
            {
                var model = db.DeptInfos.Where(w => w.DeptName.Trim() == m.DeptName.Trim() && w.SubDept.Trim() == m.SubDept.Trim()).FirstOrDefault();
                if (model == null)
                {
                    db.DeptInfos.Add(m);
                    db.SaveChanges();
                    return;
                }
                model.SubDept = m.SubDept.Trim();
                model.DeptName = m.DeptName.Trim();
                model.DeptCode = m.DeptCode.Trim();
                model.RuleCode = m.RuleCode.Trim();
                db.SaveChanges();
            }
        }
        public static void AddUserInfo(EmployInfo u)
        {
            using (ORMContext db = new ORMContext())
            {
                var model = db.EmployInfos.Where(w => w.UserCode == u.UserCode).FirstOrDefault();
                if (model == null)
                {
                    db.EmployInfos.Add(u);
                    db.SaveChanges();
                    return;
                }
                model.UserCode = u.UserCode;
                model.Gender = u.Gender;
                model.EmployName = u.EmployName;
                model.RuleCode = u.RuleCode;
                db.SaveChanges();
            }
        }

3、项目中用到的配置文件

如果出现奇怪的问题,仔细检查一下配置文件中entityFrameworkprovidersDbProviderFactories,自动生成修改的配置文件,有时会有问题,我之前就被坑了。

1)控制台程序配置文件



  
    
    

2)Web网站用到的配置文件




  
    

你可能感兴趣的:(C#遗忘系列,c#,.net,开发语言)