`

EF+SQL server 转为 EF+SQLite

阅读更多

首先安装:sqlite-netFx40-setup-bundle-x86-2010-1.0.84.0.exe(http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

http://www.sqlite.org/download.html)

然后把sql server中用到的数据库用sql server tosqlite db conveter.exe(http://www.hdxz.com/soft/zt000570.html)生成db后缀的数据文件放在某目录。

如果要查询可以用sqlitestudio.exe工具。

1.引用System.Data.SQLite.dll和System.Data.SQLite.Linq.dll

2.新建一个ADO.NET实体数据模型,也就edmx文件,新建过程和建sql server那个edmx文件一样,注意建立过程中“模型命名空间”改为和sql server那个edmx一样,建好后右键edmx文件以xml打开方式打开,

把节点edmx:StorageModels下的schema的provider改为System.Data.SQLite,然后把改emdx的后台代码中的#Entity部分删除,不然会有entity的重复定义。到这来EF的步骤就完成了

3.调用工程中

 配置文件添加

<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.57.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
  </system.data>

4.调用工程中新增ConnectionString

<add name="***_sqlite" connectionstring="metadata=res://*/Model.UserModel.csdl|res://*/ModelSqlite.ModelSqlite.ssdl|res://*/modelSqlite.ModelSqlite.msl;Provider=System.Data.SQLite;provider connection string='data source={0}'"/>

 

之前sql server 的connectionstring 是:<add name="***_sqlite" connectionstring="metadata=res://*/Model.UserModel.csdl|res://*/Model.UserModel.ssdl|res://*/Model.UserModel.msl;Provider=System.Data.SQLite;provider connection string='data source=.;initial catalog=usermangemnet;integrated security=true'"/>

 

两个对比也就说应用了sql server 那个edmx的csdl部分,然后 provider connection string 只需提供数据库db文件的路径就可以。到这里配置就完成了

5.接下来就是如何在两种数据库中切换了:可以利用“条件编译符号”

比如在某项目中的生成属性中定义条件编译符号有Test那么就可以在代码中切换两种数据库了

#if(Test)

this._eneties=new usermangementEntity(string.formate(***_sqlite+"db文件的路径"));

#else

this._ennties=new usermanagementEntiry(connectionstring);

#endif

分享到:
评论

相关推荐

    ExtJS4.1+MVC4+Spring.NET1.3+EF5 整合项目数据库

    ExtJS4.1+MVC4+Spring.NET1.3+EF5 整合项目数据库(pdm、sql及sqlite数据库) 原文地址:http://blog.csdn.net/xz2001/article/details/8723266

    Expression表达式转换为SQL语句,支持SqlServer、MySql、Oracle、Sqlite、PostgreSql

    .NET Standard 2.1、.NET 5、.NET 6、.NET 7 版本SQLBuilder,Expression表达式转换为SQL语句,支持SqlServer、MySql、Oracle、Sqlite、PostgreSql;基于Dapper实现了不同数据库对应的数据仓储Repository;

    ASP.NET MVC+EF6+Bootstrap大型互联网平台后台管理系统源码

    2、支持SQLServer、MySQL、Oracle、SQLite、Access 等多数据库类型。模块化设计,层次结构清晰。内置一系列企业信息管理的基础功能。 3、操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、...

    EFCore.BulkExtensions:用于SQL Server和SQLite上的插入更新删除和读取(CRUD)操作的实体框架核心批量批处理扩展

    当前版本使用EF Core 3.1,目前支持Microsoft SQL Server(2008+)和SQLite。 它针对NetStandard 2.0,因此可以用于针对NetCore(2.0+)或NetFramework(4.6.1+)的项目。 3.1.0和3.0.0之间的版本使用的是EF Core ...

    快速开发框架C#源码完全开源版 基于ASP.NET MVC+EF6+Bootstrap框架等

    4、支持SQLServer、MySQL、Oracle、SQLite、Access等多数据库类型。模块化设计,层次结构清晰。内置一系列企业信息管理的基础功能。 5、操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、...

    会员管理系统VS2005版源码2012615

    数据库文件在Db文件夹中,数据库是(SQL2000) VS2005版修改内容: 1.由2003版升级为2005版。 2.添加了丢失的txt文件。 4.替换了一些名字,邮箱等信息。 5.修改了项目可以再VS中运行。 6.重新生成了解决方案manage....

    SQL必知必会

    , 本书是深受世界各地读者欢迎的SQL经典畅销书,内容丰富,文字简洁明快,针对Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各种主流数据库提供了大量简明的实例。与其他同类图书不同,它没有过多阐述...

    ASP.NET MVC+EF6+Bootstrap开发的后台管理系统源码

    2、支持SQLServer、MySQL、Oracle、SQLite、Access 等多数据库类型。模块化设计,层次结构清晰。内置一系列企业信息管理的基础功能。 3、操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、...

    ASP.NET MVC+EF6+Bootstrap开发C#源代码

    支持SQLServer、MySQL、Oracle、SQLite、Access 等多数据库类型。模块化设计,层次结构清晰。内置一系列企业信息管理的基础功能。 操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、功能...

    NFine快速开发框架C#源码完全开源版 基于NET Core MVC+EFCore+Bootstrap框架等

    4、支持SQLServer、MySQL、Oracle、SQLite、Access等多数据库类型。模块化设计,层次结构清晰。内置一系列企业信息管理的基础功能。 5、操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、...

    netnrf:项目已迁移至

    初步采用.NET Core + EF + SQL(SQLServer,MySQL,PostgreSQL,SQLite) 数据库wwwroot/scripts/放置于wwwroot/scripts/目录下 数据库转换使用的工具: : 全部采用LINQ,跨数据库,避免SQL注入 Visual Studio 2019...

    sql必知必会

    , 本书是深受世界各地读者欢迎的SQL经典畅销书,内容丰富,文字简洁明快,针对Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各种主流数据库提供了大量简明的实例。与其他同类图书不同,它没有过多阐述...

    CRUD_EF_SqLite_Migrations:使用实体框架,SqLite,迁移在C#中进行分类

    CRUD_EF_SqLite_Migrations 使用Entity Framework,SqLite,Migrations迁移C#。移民创建一个迁移。 生成可以更新数据库的代码,以使其与模型的一组更改同步。 更新数据库。 应用挂起的迁移以更新数据库架构。 ...

Global site tag (gtag.js) - Google Analytics