本程序是用于演示EF框架读取SQLITE数据库和FreeSQL读取 操作SQLITE数据库的区别及使用方法。
一、项目介绍:
DataBaseModel:数据对象创建类,所有项目都要引用。
DataBaseOper: UIAPP,操作的调用,业务层。
二、所用DLL
1、公用DLL
System.Data.SQLite.DLL 操作SQLITE的DLL库,C#,不区分位数,引用到项目。
SQLite.Interop.dll 操作SQLITE的DLL库,与上边DLL库一同时使用,版本号一致,否则会报错。区分位数,复制到程序运行目录下使用。
2、EF模式使用DLL
EF框架的DLL:EntityFramework.dll,EntityFramework.SqlServer.dll,EntityFramework.Utilities.dll三个DLL,不区分位数,引用到项目。
SQLITE其他DLL:System.Data.SQLite.EF6.dll,System.Data.SQLite.Linq.dll,SQLITE操作DLL,与公共DLL一起使用,版本一致,引用到项目。
3、FREESQL使用DLL
FREESQL使用DLL:FreeSql.DbContext.dll,FreeSql.dll,FreeSql.Provider.Sqlite.dll,FreeSql.Repository.dll,与公共DLL库一起使用,这几个DLL版本一致,引用到项目。
SQLITE其他DLL:System.Data.SQLite.EF6.dll,System.Data.SQLite.Linq.dll,SQLITE操作DLL,与公共DLL一起使用,版本一致,引用到项目。
4、数据库操作接口类
一个对象数据创建一个各自的IDAL和DAL,其中IDAL可以继承ICOMMANDDAL,公共的操作接口。
三、使用步骤
1、EF模式调用。
1)引用EFDLL(3个),SQLITEDLL(3个),复制公共DLL(1个)。
2)创建连接类,EFContext,此类中设置数据对象,DBSET<数据对象>,设置初始化方式Database.SetInitializer(new MigrateDatabaseToLatestVersion<EFContext, BaseDataConfiguration>());
初始化方式中引用了初始化配置BaseDataConfiguration,初始化配置类使用了自动他表的操作类。
SetSqlGenerator("System.Data.SQLite", new SQLiteMigrationSqlGenerator());//使用自动创建表
3)APP的app.config中要倒置EF和SQLITE信息。
4)业务层使用:EFContext对象,ctx,然后在各个对象的接口实现类DAL中调用ctx的相应操作,执行完操作后,需要调用ctx.SaveChange();
2、FreeSQL模式
1)引用FreeDll(4个),SQLITEDLL(3个),复制公共DLL(1个)。
2)创建连接类,FreeSqlFactory,直接获取IFREESQL接口信息。
3)业务层使用:调用工厂里面获取IFreeSql接口对象,ifs,然后在各个对象的接口实现类DAL中调用ifs的相应操作。
四、比较
配置方面:EF模式配置复杂,需要APP.CONFIG进行配置才能使用。FreeSQL不需要
DLL: EF和3个DLL,FreeSQL有4个DLL,SQLITE的DLL除外。SQLITE的DLL4个(三个引用一个复制)
创建链接方式:EF复杂,需要配置自动创建表项。FreeSql不需要,直接调用接口。
读取速度:经过本程序测试,初次连接数据库时,EF很慢,FreeSQL很快。
五、操作
无论哪种方式,都是操作类DAL和IDAL,调用DbContext的接口或IFreeSql接口,对数据库进行添加删除查询修改等操作。具体执行多少操作,和DAL里的代码有关,与连接数据库无关。
六、代码演示
1)接口对象
var ctx= EFContext.GetDbContext(dbFile);
var ifs=new FreeSqlContext().GetFreeSql(dbFile);
2)DAL操作接口调用
public calss TestDataDal:ITestDataDal
{
public bool Add(TestData data)
{
int addCount = 0;
if (_efMode)
{
ctx.Set<TestData>().Add(data);
addCount = _dbcon.SaveChanges();
}
else
{
addCount = ifs.Insert(data).ExecuteAffrows();
}
return addCount > 0;
}
}
//连接数据库
操作数据库
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
EFFreeSQLDataBaseOper.rar (84个子文件)
EFFreeSQLDataBaseOper
.vs
DataBaseOper
v14
.suo 274KB
DataBaseOper
bin
Release
x64
Release
Debug
DataBaseOper.vshost.exe 22KB
DataBaseOper.exe 48KB
EntityFramework.dll 4.75MB
System.Data.SQLite.dll 392KB
DataBaseOper.exe.config 3KB
System.Data.SQLite.EF6.dll 199KB
DBFile
EFDataBase.db 20KB
FreeDataBase.db 12KB
DataBaseOper.pdb 106KB
SQLite.Interop.dll 1.69MB
EntityFramework.SqlServer.dll 588KB
EntityFramework.Utilities.dll 51KB
DataBaseOper.vshost.exe.config 3KB
FreeSql.Provider.Sqlite.dll 100KB
FreeSql.dll 790KB
System.Data.SQLite.Linq.dll 199KB
Debug
DataBaseOper.vshost.exe 22KB
DataBaseOper.vshost.exe.manifest 490B
EFMigrations
SQLiteMigrationSqlGenerator.cs 11KB
SQLiteDmlBuilder.cs 26KB
SQLiteProviderManifestHelper.cs 461B
SQLiteProviderServicesHelper.cs 5KB
TypeUsageHelper.cs 6KB
LiteralHelpers.cs 1KB
SQLiteDdlBuilder.cs 4KB
MetadataHelpers.cs 5KB
App.xaml 378B
DataBaseOper.csproj 7KB
obj
x64
Debug
DataBaseOper_MarkupCompile.lref 78B
App.g.i.cs 2KB
DataBaseOper.exe 48KB
DataBaseOper.Properties.Resources.resources 180B
App.g.cs 2KB
DataBaseOper_MarkupCompile.cache 287B
DataBaseOper_MarkupCompile.i.cache 285B
DataBaseOper.csprojResolveAssemblyReference.cache 123KB
DataBaseOper.pdb 106KB
DesignTimeResolveAssemblyReferencesInput.cache 8KB
DataBaseOper.csproj.FileListAbsolute.txt 5KB
DataBaseOper_Content.g.cs 621B
MainWindow.g.cs 8KB
TempPE
Properties.Resources.Designer.cs.dll 4KB
DataBaseOper.csproj.GenerateResource.Cache 954B
DataBaseOper.g.resources 2KB
MainWindow.g.i.cs 8KB
MainWindow.baml 2KB
DataBaseOper_Content.g.i.cs 621B
Debug
App.g.i.cs 2KB
DataBaseOper_MarkupCompile.i.cache 267B
DesignTimeResolveAssemblyReferencesInput.cache 7KB
TempPE
DataBaseOper_MarkupCompile.i.lref 78B
MainWindow.g.i.cs 3KB
App.xaml.cs 308B
DbOper
TestDataDal.cs 3KB
ITestDataDAL.cs 431B
DataBaseContext
FreeSqlContext.cs 2KB
EFContext.cs 2KB
MODEL
TestData.cs 546B
App.config 3KB
MainWindow.xaml 2KB
Properties
Resources.resx 5KB
Settings.settings 201B
AssemblyInfo.cs 2KB
Settings.Designer.cs 1KB
Resources.Designer.cs 3KB
readme.txt 4KB
MainWindow.xaml.cs 3KB
DataBaseOper.csproj.user 228B
DLL
DataBaseDll20220310
file.txt 694B
EntityFramework.dll 4.75MB
x86
SQLite.Interop.dll 1.3MB
FreeSql.Repository.dll 5KB
System.Data.SQLite.dll 392KB
System.Data.SQLite.EF6.dll 199KB
EntityFramework.SqlServer.dll 588KB
EntityFramework.Utilities.dll 51KB
x64
SQLite.Interop.dll 1.69MB
FreeSql.DbContext.dll 94KB
FreeSql.Provider.Sqlite.dll 100KB
FreeSql.dll 790KB
System.Data.SQLite.Linq.dll 199KB
readme.txt 0B
DataBaseOper.sln 1KB
共 84 条
- 1
嘻哈才哥哥
- 粉丝: 2
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0