• 基于 SQLite 数据库的 C# 实体模型的实现


    在 C# 中使用实体模型(Entity Framework)一般使用 MSSQL 数据库,这也是 vs2010 的默认方式。

    SQLite 作为一种轻型数据库,实现了 SQL92 标准的大部分规定,利用 .net 连接库,可以与实体模型配合使用。以下是需要准备的环境:
    1. Vs2010 + .Net Framework 4
    2. System.Data.SQLite,下载地址。开发环境需要安装 Setups for 32-bit Windows (.NET Framework 4.0),发布时只需要打包  Precompiled Binaries for 32-bit Windows (.NET Framework 4.0)中的两个文件(System.Data.SQLite.dll 和 System.Data.SQLite.Linq.dll)。
    3. 如果需要从模型生成 DDL,需要下载 SSDLToSQLite3,解压缩后放到 C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\DBGen(随 Vs2010 安装位置有所不同)。
    4. EF Power Tools Beta 3,在 Vs2010 的扩展管理器中下载安装。
    5. DbContext Generator,下载地址
    SQLite 不支持 Code First。变通的办法是使用 MsSql 实现 Code First 的 POCO 类定义,然后将生成的 Edmx 文件保存到另外的工程中实现 Model First。生成的 Edmx 需要手动将其中的 中的 Provider 改为 System.Data.SQLite。
    使用 Nuget 将 EntityFramework 安装到当前工程时,会自动添加 App.Config 文件。需要添加以下内容:
      <connectionStrings>
        <add name="MyModels" 
    connectionString
    ="metadata=res://*/MyModels.csdl|res://*/MyModels.ssdl|res://*/MyModels.msl;provider=System.Data.SQLite;provider connection string=&quot;Data Source=MyModels.db3;Version=3;&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> <system.data> <DbProviderFactories> <remove invariant="System.Data.SQLite"/> <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.84.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/> </DbProviderFactories> </system.data>

    Code First 中使用 EntityTypeConfiguration 语法无法定义字段的默认值,需要修改数据库的 DDL 定义,或者在 Edmx 文件生成的实体类中添加初始值设置。注意不能直接修改自动生成的类文件,当 edmx 文件改动后会重新生成实体类定义,导致改动丢失。应该在同一文件夹中添加 partial 类文件。

  • 相关阅读:
    mysql查询字段取前3位,后3位,中间3位,去除前3位,去除后3位
    10月份四季度
    JavaScript箭头函数的立即执行函数实现三元表达式执行多条语句
    JavaScript判断是否是同一天
    项目经理:是兄弟就一起加班吧
    技术人员转型项目经理的角色转换
    项目经理入职后,如何快速管理项目
    如何解决项目成员之间的冲突?
    提高各方面沟通效率,是项目经理该去做的事
    项目计划太复杂?试试思维导图
  • 原文地址:https://www.cnblogs.com/icepeach/p/2901438.html
Copyright © 2020-2023  润新知