zoukankan      html  css  js  c++  java
  • EntityFramework SQLite

    安装完sqlite的nuget包后,还要设置App.config文件才能正常使用

    1.  在<providers>节点添加一条提供器配置     

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

    <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
          <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
          <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>

    这项配置看起来好像没有用到,但是不添加的话又会发生错误.


    2.  添加一个连接字符串节点<connectionStrings>用于添加数据库的连接字符串

    如添加一条连接字符串<add name="TestDb" connectionString="Data Source=TestDb.db" providerName="System.Data.SQLite.EF6"/>

    <connectionStrings>
        <add name="TestDb" connectionString="Data Source=TestDb.db" providerName="System.Data.SQLite.EF6"/>
    </connectionStrings>

    name="TestDb" 指定这条连接字符串的名称为"TestDb", 用在自定义的数据库上下文类中

    connectionString="Data Source=TestDb.db" 指定数据源为"TestDb.db", 即数据库文件名为"TestDb.db",默认保存路径为工作目录(可自己指定其它路径)

    providerName="System.Data.SQLite.EF6" 指定数据提供器

    3. 数据库上下文类

    例:(注意其中的数据库连接字符串的使用方法)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.Entity;
    using SQLite.CodeFirst;
    using System.Data.Entity.ModelConfiguration.Conventions; namespace WindowsFormsApplication_sqlite2 { class TestDbContext :DbContext { //base("TestDb")调用基类构造函数,可指定连接字符串名称 public TestDbContext() : base("TestDb") { } protected override void OnModelCreating(DbModelBuilder modelBuilder) { //base.OnModelCreating(modelBuilder); //关闭所有级联删除 modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); var sqliteConnectionInitializer = new SqliteCreateDatabaseIfNotExists<TestDbContext>(modelBuilder); Database.SetInitializer(sqliteConnectionInitializer); } public DbSet<TestA> TestAs { get; set; } public DbSet<TestB> TestBs { get; set; } } class TestA { public long Id { get; set; } public string Barcode { get; set; } public string Name { get; set; } } class TestB { public long Id { get; set; } public long TestAId { get; set; } public DateTime Date { get; set; } [ForeignKey("TestAId")] public TestA TestA { get; set; } } }
  • 相关阅读:
    ionic2里面Angular2运用canvas画图
    前端css禁止复制页面上的文本
    原生JS检测浏览器安装的插件
    javascript 里面的 匿名函数自执行方法!
    软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?
    软件产品质量特性是什么?
    软件测试的策略是什么?
    软件测试分为几个阶段 各阶段的测试策略和要求是什么?
    软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?
    什么是软件测试?软件测试的目的与原则
  • 原文地址:https://www.cnblogs.com/gmcn/p/5833994.html
Copyright © 2011-2022 走看看