文档章节

ef6操作sqlite

f
 fdc2017
发布于 2017/05/17 14:39
字数 297
阅读 1
收藏 0

从项目工具NuGet包工具,下载system.data.sqlite。在App.config中增加如下一条

 <!--下面是手动增加的一行-->
      <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />

写一个自己的实体类要引用  using System.ComponentModel.DataAnnotations.Schema;

    [Table("Actress")]
    public class Actress
    {
        public  Int64 ID { get; set; }
        public  string Name { get; set; }
        public  Int32 Age { get; set; }
       
    }

再写一个继承于DBContext的上下文MyContext,引用二条 using System.Data.Entity;
using System.Data.Common;

    public  class MyContext : DbContext
    {
        public  DbSet<Actress> ActressSet { get; set; }

        public  MyContext(DbConnection conn) : base(conn, false)
        {

        }
    }

先用sqliteConnection建立连接,再用sqliteCommand建立一个表,然后就可以用我们的MyContext增删改查,完整代码如下

           using (SQLiteConnection conn = new SQLiteConnection())
            {
                conn.ConnectionString = @"Data Source=d:\python\actress.db";
                conn.Open();

                using (SQLiteCommand cmd = new SQLiteCommand(conn))
                {
                    cmd.CommandText = @"create table if not exists Actress
                                                                (ID integer primary key autoincrement,
                                                                Name text not null,
                                                                Age integer not null)";
                    cmd.ExecuteNonQuery();

                    using (MyContext context = new MyContext(conn))
                    {
                        if (context.ActressSet.Where<Actress>(a => a.Name == "王菲").Count<Actress>() == 0)
                        {
                            context.ActressSet.Add(new Actress { Name = "王菲", Age = 47 });
                            context.ActressSet.Add(new Actress { Name = "范冰冰", Age = 37 });
                            context.ActressSet.Add(new Actress { Name = "柳岩", Age = 36 });
                            context.SaveChanges();
                        }
                       

                        var actress = (from a in context.ActressSet select a).ToList();
                        actress.ForEach(a => Console.WriteLine($"{a.ID}  {a.Name}  {a.Age}"));
                        Console.WriteLine("======================================");
                        context.ActressSet.Add(new Actress { Name = "赵薇", Age=41 });
                        context.SaveChanges();
                        actress = (from a in context.ActressSet select a).ToList();
                        actress.ForEach(a => Console.WriteLine($"{a.ID}  {a.Name}  {a.Age}"));

                        context.ActressSet.Remove(context.ActressSet.Find(4)); ;
                        context.SaveChanges();

                        Console.WriteLine("======================");
                        actress = (from a in context.ActressSet select a).ToList();
                        actress.ForEach(a => Console.WriteLine($"{a.ID}  {a.Name}  {a.Age}"));
                    }
                }
            }

            Console.WriteLine("按任意键结束");
            Console.ReadKey();

© 著作权归作者所有

共有 人打赏支持
f
粉丝 0
博文 9
码字总数 1724
作品 0
武汉
私信 提问
SQLite 的 CodeFirst 模式

目录 问题描述 解决方案 安装依赖包 修改程序配置 App.config 创建模型对象 Person.cs 创建数据上下文 PersonDbContext.cs 主程序调用 Program.cs 注意事项 相关参考 目前 EF 是 .NET 平台下...

hippieZhou
08/04
0
0
VS2015配置使用Sqlite以及EF6框架

项目中需要使用到Sqlite本地数据库保存数据,以防止离线情况下设备的正常使用。 一、下载vs2015下的sqlite插件,并安装 插件下载页面:http://system.data.sqlite.org/index.html/doc/trunk/...

笑丶笑
09/25
0
0
sqlite3 用SQLCipher 加密后 命令行下如何重新打开和读取

http://sqlcipher.net/sqlcipher-api/#key PRAGMA key The process of creating a new, encrypted database is called “keying” the database. SQLCipher uses just-in-time key derivati......

kjpioo
2013/08/01
0
2
Python中使用SQLite

SQLite: SQLite是一种数据库,Python中集成了SQLite3,所以在Python中使用SQLite,可以直接导入SQLite包,不需要做额外的配置。 更多的SQLite简介和相关知识可以查看专门的教程:http://ww...

akane_oimo
09/24
0
0
轻巧的本地数据库 - sqlite

  前言   SQLite,是一款轻型的数据库,它的设计目标是嵌入式的,而且现在很多嵌入式产品中使用它,它占资源非常低,在嵌入设备中,可能只需要几百K的内存就够了。它能够支持Windows/Lin...

linux运维菜
11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

node安装cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

笑丶笑
3分钟前
0
0
OSChina 周三乱弹 —— 夜半回家,推门不动

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @胖达panda :分享陶晶莹/张雨生的单曲《我期待》 《我期待》- 陶晶莹/张雨生 手机党少年们想听歌,请使劲儿戳(这里) @cc_z :熬夜一时爽,...

小小编辑
15分钟前
27
3
验证码

response生成验证码 验证码的作用:防止恶意注册、攻击等 网站上看到的验证码,实际上都是一些图片,而这些图片都是程序(Servlet)生成的! package day19.test; import java.awt.Color; i...

码农屌丝
53分钟前
1
0
day147-2018-11-14-英语流利阅读-待学习

《毒液》刚刚上映,创造漫威宇宙的人却走了 雪梨 2018-11-14 1.今日导读 中国的金庸创造了侠义英雄和江湖传奇,而大洋彼岸的斯坦·李也同样创造了一个绚烂璀璨的漫威宇宙,他构思的每个超级英...

飞鱼说编程
54分钟前
6
0
CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部