EF6-SQLite-CodeFirst P1

发布时间:2021-11-30 02:03:49



EF6-SQLite-CodeFirst P1
入门篇,框架搭建,初始化1.安装System.Data.SQLite2.创建实体类3.创建上下文类3.1 通过App.config指定连接字符串3.2 通过传入灵活的连接字符串
4.安装SQLite.CodeFirst5.测试6.查看数据库存储



入门篇,框架搭建,初始化

本文指在快速入门该框架,相当于学一门新语言然后输出“Hello World!”


1.安装System.Data.SQLite

安装以下包:

预览更改:


2.创建实体类

public class Student
{
public int StudentID { get; set; }
public string StudentName { get; set; }
public DateTime? DateOfBirth { get; set; }
public byte[] Photo { get; set; }
public decimal Height { get; set; }
public float Weight { get; set; }
public Grade Grade { get; set; }//年级
}

public class Grade
{
public int GradeId { get; set; }
public string GradeName { get; set; }
public string Section { get; set; }
public ICollection Students { get; set; }
}

3.创建上下文类

创建上下文有两种方式


3.1 通过App.config指定连接字符串

通过在App.config正常配置连接字符串,此方式适合数据库固定位置






假设上下文类为StudentContext,那么该类的构造函数应该是这样:


public StudentContext():base("SchoolSqlite")
{
public DbSet Students { get; set; }
}

3.2 通过传入灵活的连接字符串

顾名思义,可以通过程序外部传入连接字符串初始化DbContext类。


需要使用以下DbContext的构造方法:


public DbContext(DbConnection existingConnection, bool contextOwnsConnection);

假设上下文类为StudentContext,那么该类的构造函数应该是下方代码所示:



备注:
SQLiteProviderFactory需引用System.Data.SQLite.EF6
DbConnection需引用System.Data.Common



static string dbPath = "Data Source=Data Source=|DataDirectory|\Data\SchoolSqlite.db3";
public static StudentContext Instance
{
get
{
DbConnection sqliteCon = SQLiteProviderFactory.Instance.CreateConnection();
sqliteCon.ConnectionString = dbPath;
return new StudentContext(sqliteCon);
}
}
private StudentContext(DbConnection con) : base(con, true) { }
public DbSet Students { get; set; }

4.安装SQLite.CodeFirst

因为本地不存在数据库时,需要用代码自动创建新数据库,所以需要安装



在上下文类中重写OnModelCreating方法



备注:需引用using SQLite.CodeFirst



public class StudentContext : DbContext
{

//public StudentContext() : base("SchoolSqlite")
//{

//}
static string dbPath = "Data Source=|DataDirectory|\Data\SchoolSqlite.db3";
public static StudentContext Instance
{
get
{
DbConnection sqliteCon = SQLiteProviderFactory.Instance.CreateConnection();
sqliteCon.ConnectionString = dbPath;
return new StudentContext(sqliteCon);
}
}
private StudentContext(DbConnection con) : base(con, true) { }
public DbSet Students { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer(new SqliteCreateDatabaseIfNotExists(modelBuilder));
}
}

5.测试

最后配置App.config,在标签中添加以下代码:




实际添加效果如下:


添加一个按钮,测试:


private void btn_Init_Click(object sender, EventArgs e)
{
var cxt = new StudentContext();
var Zhangsan = new Student() { Name = "张三", Age = 25 };
cxt.Students.Add(Zhangsan);
cxt.SaveChanges();
MessageBox.Show("初始化完毕!");
}

6.查看数据库存储


源代码及文档地址:


    CSDN下载.蓝奏云

相关文档

  • 养胃护胃的食物有哪些 这6种食物最养胃
  • 肠胃炎吃什么
  • tf卡能做硬盘吗
  • 数据结构概述(Data structure)
  • RSA sample代码(miracl, tommath)
  • 《重庆江景》
  • 大学会计实践心得体会
  • 蓝色的树叶教学反思
  • 浮石沈木怎么成语接龙
  • 写给青年人的信
  • 《西游记》学生读后感范文500字
  • 驳论文常识资料
  • 阴阳师妖怪屋海市蜃楼怎么进?海市蜃楼活动入口
  • kettle字符串操作不起作用_Mysql数据库基础操作和详解(上)!!!
  • 写给大学同学的霸气赠别留言
  • 酒渣鼻怎么形成的酒渣鼻的临床表现
  • 初中文言文教案模板
  • 激光去痣大概多少钱
  • 识字姓氏歌教学反思通用3篇
  • 王者荣耀反伤刺甲反弹多少伤害具体一点
  • 四川汶川地震全国哀悼日心得体会感想作文
  • 天上的星星是什么歌
  • 纪梵希适合什么年龄段?精致女孩的选择
  • 语文课前五分钟的即兴演讲范文
  • 开工祝福语大全
  • 数据结构-树与森林-森林与二叉树的转换(例题)
  • 2007年度个人工作总结教育
  • 中国古代历史的成语故事
  • 3dmax导出glb格式_倾斜摄影三维模型几种常见的格式,你能说出哪些?
  • 培智学校家长会发言稿合集4篇
  • 猜你喜欢

  • 新加坡留学有全额奖学金没有
  • 怎么熬制牛肉汤
  • 给普通高中朋友的赠别留言句子
  • 交通银行借款合4-会计学堂
  • 咨询室日报表
  • 百分数整理与复*PPT课件(1)
  • 云南省2018版保育员三级考试试题试卷及解析
  • 如东永红粮食种植专业合作社企业信息报告-天眼查
  • 吃了有骚味的猪没事吧?有点害怕!
  • 一次性真空采血管的使用-医学精品
  • 壮族文化 壮族“壮锦”民族特点简介
  • 2013安徽省高考语文试卷汇总必过技巧
  • 检察机关在反家庭暴力工作中的职能探索
  • 哪些药物可增强人体的抵抗力?.docx
  • 商务汉语词汇量101-200
  • 2017——2018学年度北师大版小学三年级上册数学期中试卷
  • 中山农业局系统权力运行流程图
  • 2013辽源教师招聘考试教育基础知识填空总结二
  • 万年青的花语有什么含义
  • 青县华源果蔬种植专业合作社(企业信用报告)- 天眼查
  • *潭:海西战略“对台特区”
  • CSDN新版下载频道介绍之二上传和下载资源页面介绍
  • 新人教版七年级上学期期中数学试卷含答案(共3套)
  • 内蒙古自治区节能技术改造财政专项资金管理办法
  • 【有色金属】建立企业管理人员培训新机制
  • 父与子的故事
  • 2012年英特尔未来教育项目核心课程V10模块8测验答案
  • 【精品】2018新ppt模板电子商务(1页)word简历模板【精选word】
  • 仓单与提单的区别都有哪些
  • 2016年电气工程师考试提高记忆效率的八种方法
  • 2009-2014年瑟肽晡鞑刈灾吻??纳??凸┯σ敌幸挡莆裰副攴治瞿瓯
  • 2015春沪教版语文四下哥伦布竖立鸡蛋word导学案【可编辑】
  • 招标投标法实施条例释义3
  • 预防猝死10种恶*要改掉
  • 福建省工商局关于开展房地产交易市场专项整治行动的通知
  • 【主持词范文】端午节主持词开场白范文
  • 以描写送别为主题的诗句
  • KPCB发布《移动互联网趋势》
  • 武汉泽迪建材有限责任公司企业信用报告-天眼查
  • 在ICU急性心肌梗死患者的护理-最新文档
  • 天天酷跑魅惑之心属性介绍九尾狐仙S宝物好不好
  • 甘肃省2015年下半年一级建筑师《建筑结构》:力系的简化与*衡试题
  • 电脑版