Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件

导航

目   录:Farseer.net轻量级开源框架 目录

上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:新版本说明

下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射

前言

Farseer.Net是支持多数据库的ORM,使用者通过配置文件即可切换指定的数据库而不需要修改项目中的任何代码。本篇讲述如何进行数据库环境的配置。同时也讲述其它配置文件的使用。

配置文件

1、配置文件的路径:

  不管是WebForm、Mvc、WinForm,配置文件统一放在:~/App_Data/ 中。请大家劳记这个路径。框架用到的所有配置文件的路径都会放在这里。

  

  配置文件不需要手动创建,框架在运行时,会查找这个目录下的文件,不存在会自动创建它。

2、目前配置文件有:

 
序号 管理类 名称 配置路径 项目 描述
1 DbConfigs 数据库配置 Db.Config Farseer.Net 数据库环境配置,支持多个数据库的配置
2 SystemConfigs 系统配置 System.Config 系统环境配置,比如是否生成SQL日志
3 EmailConfigs 邮件配置 Email.Config Farseer.Net.Utils 邮件发送配置,支持多个邮件的配置
4 WebConfigs 网站配置 Web.Config Farseer.Net.Utils.Web 网站的基础配置,如上传保存的路径、网站Cookies域名称
5 WebRewriterConfigs Url重写配置 WebRewriter.Config 网站URL地址重写配置,支持多个地址配置
6 WebSystemConfigs 网站系统配置 WebSystem.Config 网站系统配置,如Session、Cookies的保存时间、前缀等

3、配置文件的动态管理:

  以上配置文件的对应管理类,统一放在:命名空间:FS.Configs中。

  其中AbsConfigs.cs是所有配置文件的基类,配置文件通过:序列化、反序列化进行持久化管理。(在FS.Utils)

  大家无需关心它们是如何运行的。只要知道这些配置文件被持久化到~/App_Data/中即可。

  要修改他们时,只需要修改这个路径的物理文件即可,而不需要去修改他们的管理类。

  如果你需要通过程序来读取这些配置文件,而在程序中使用时可以通过   类名.ConfigEntity.属性  来获取它们。

  比如获取数据库配置文件的数据库类型的读取操作是:

1 DbConfigs.ConfigEntity.DbList[0].DataType

  DbConfigs.ConfigEntity得到的是整个数据库配置文件的配置

  DbList[0]是指数据库配置的第1项。(因为一个项目中,数据库有可能是多个的)

  同时我们也可以通过程序来动态的修改被保存它们:

1 DbConfigs.SaveConfig(new DbConfig());

数据库配置

 4、重点讲述数据库的配置Db.Config:

 1     /// <summary> 数据库连接配置 </summary>
 2     public class DbInfo
 3     {
 4         /// <summary> 数据库连接串 </summary>
 5         public string Server = ".";
 6         /// <summary> 数据库帐号 </summary>
 7         public string UserID = "sa";
 8         /// <summary> 数据库密码 </summary>
 9         public string PassWord = "123456";
10         /// <summary> 端口号 </summary>
11         public string Port = "1433";
12         /// <summary> 数据库类型 </summary>
13         public DataBaseType DataType = DataBaseType.SqlServer;
14         /// <summary> 数据库版本 </summary>
15         public string DataVer = "2008";
16         /// <summary> 数据库目录 </summary>
17         public string Catalog = "数据库名称";
18         /// <summary> 最小连接池 </summary>
19         public int PoolMinSize = 0;
20         /// <summary> 最大连接池 </summary>
21         public int PoolMaxSize = 0;
22         /// <summary> 数据库连接时间限制,单位秒 </summary>
23         public int ConnectTimeout = 30;
24         /// <summary> 数据库执行时间限制,单位秒 </summary>
25         public int CommandTimeout = 30;
26     }

通过DataType属性来决定是用哪种数据库类型,目前支持的数据库类型有如下:

  • DataType = DataBaseType.SqlServer;
  • DataType = DataBaseType.OleDb;
  • DataType = DataBaseType.MySql;
  • DataType = DataBaseType.SQLite;
  • DataType = DataBaseType.Oracle;

5、用一个列表描述所有数据库配置:

 
序号 数据库 Server UserID PassWord Port DataType DataVer Catalog PoolMinSize PoolMaxSize ConnectTimeout CommandTimeout 描述
1 SqlServer
数据库IP


数据库账号

没有则不填


数据库密码

没有则不填


数据库端口

默认可不填

SqlServer
2000

2005

2008

数据库名称
最小连接池

默认可不填

最大连接池

默认可不填


数据库连接时间,单位秒

默认可不填


数据库执行时间,单位秒

默认可不填

 MSSQL,.net常用的数据库
2 OleDb 文件名称 OleDb
3.0

4.0

5.0

95

97

2003

2007+

 不填 支持Access/Excel等Oledb类型
3 MySql 数据库IP MySql 不填   数据库名称 使用这个数据库时需要把MySql.Data.dll驱动放到/Bin/中
4 SQLite  文件名称 SQLite 不填   不填  使用这个数据库时需要把System.Data.SQLite.dll驱动放到/Bin/中
5 Oracle 数据库IP Oracle 不填   SID名称  Oracle大家伙,想吃内存就靠它了。

  其中,在Server处,如果数据库是非网络类型的,如:SQLite、Oledb这种单机数据库(桌面数据库)时,填写的是数据库的文件名称。文件路径存放在:~/App_Data/中。

  比如在SQLite数据库存放在~/App_Data/user.db。在Server填写的则是:user.db即可。框架默认会在~/App_Data/进行查找是否有该数据库。

配置文件的例子

 1 <?xml version="1.0"?>
 2 <DbConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 3   <DbList>
 4     <DbInfo>
 5       <Server>.</Server>
 6       <DataType>SqlServer</DataType>
 7       <DataVer>2008</DataVer>
 8       <Catalog>Farseer</Catalog>
 9       <PoolMinSize>16</PoolMinSize>
10       <PoolMaxSize>100</PoolMaxSize>
11       <ConnectTimeout>30</ConnectTimeout>
12       <CommandTimeout>60</CommandTimeout>
13     </DbInfo>
14     <DbInfo>
15       <Server>User.db</Server>
16       <DataType>SQLite</DataType>
17       <PoolMinSize>16</PoolMinSize>
18       <PoolMaxSize>100</PoolMaxSize>
19       <ConnectTimeout>30</ConnectTimeout>
20       <CommandTimeout>60</CommandTimeout>
21     </DbInfo>
22   </DbList>
23 </DbConfig>

上面的XML文件,就是在~/App_Data/Db.Config中的。大家通过上面的介绍,可自行根据项目情况进行配置。

系统配置

6、System.Config系统配置文件:

1 <?xml version="1.0"?>
2 <SystemConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3   <IsWriteDbLog>true</IsWriteDbLog>
4 </SystemConfig>

目前仅有一项:IsWriteDbLog,默认为false。

设为True后,会在~/App_Data/SqlLog.xml生成数据库的日志文件。

7、SqlLog.xml日志文件:

 1 <?xml version="1.0"?>
 2 <ArrayOfSqlRecordEntity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 3   <SqlRecordEntity>
 4     <ID>0ae653a7-876c-4399-86de-6b326fa7bcd2</ID>
 5     <UserTime>43</UserTime>
 6     <Name>Members_User</Name>
 7     <LineNo>14</LineNo>
 8     <MethodName>GetValue</MethodName>
 9     <FileName>e:\公司\Farseer.Net\Framework\V1.0\Test\Farseer.Net.Core.Tests\TableTest\GetValueTest.cs</FileName>
10     <CreateAt>2015-06-03T19:04:53.7794197+08:00</CreateAt>
11     <Sql>SELECT TOP 1 [UserName] FROM [Members_User] WHERE (([ID] &gt; @0_1_ID) AND ([ID] &gt; @0_2_ID)) </Sql>
12     <SqlParamList>
13       <SqlParam>
14         <Name>@0_1_ID</Name>
15         <Value>1</Value>
16       </SqlParam>
17       <SqlParam>
18         <Name>@0_2_ID</Name>
19         <Value>2</Value>
20       </SqlParam>
21     </SqlParamList>
22   </SqlRecordEntity>
23 </ArrayOfSqlRecordEntity>

  当然这里我们阅读起来还是比较困难的,因此我写了一个简单的工具进行显示它们,支持简单的数据筛选

  这个工具存放在:\Farseer.Net\Framework\V1.0\Tools\Farseer.Net.Tools.SqlLog\bin\Debug\Farseer.Net.Tools.SqlLog.exe

  大家需要的时候可以自行打开,进行SQL分析。

  这在进行优化时,是非常重要的一种手段。通常我们的数据性能之所以慢就是因为使用了过多的SQL造成的。

  而通过这个分析,可以直观的看出哪些方法用了大量的SQL。从而知道哪些地方有必要进行优化了。

  好了,本篇文章讲解到这,告诉了大家如何配置数据库、及SQL的日志分析。

  后面会告诉大家,实体类的映射如何绑定到这个数据库配置文件中来。(配置文件可同时配置多个数据库)

导航

目   录:Farseer.net轻量级开源框架 目录

上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:新版本说明

下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射

广告时间

QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net

Farseer.Net是一款ORM框架 + 常用工具 + 扩展集合。

Farseer 寓意:先知、预言家 通常在某些场合时,提供计谋、策略。也希望该框架能给大家提供最大化的便捷。

ORM:其英文全称是:Object(对象) Relational(关系) Mapping(映射)

Farseer.Net的目标是:快速上手、快速开发、简单方便。

1 Table.Data.User.Where(o=>o.ID == 1).ToEntity();
2 Table.Data.User.Where(o=>o.ID > 1).ToList();
3 Table.Data.User.Where(o=>o.ID != 0).Delete();
4 Table.Data.User.Where(o=>o.ID != 0).AddUp(o=>o.LoginCount, 1);
5 Table.Data.User.Where(o=>o.ID == 1).Update(new User{ UserName = "newName" });
6 Table.Data.User.Insert(new User{ UserName = "newName" });
时间: 2024-08-05 04:04:40

Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件的相关文章

Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:视图实体类映射 前言 先跟大家抱歉下,教程迟迟没有更新,因为一个人的精力实在有限(借口?好吧,我认了). 想要Farseer.Net发展的更好,需要认真.客观解读群里朋友们的建议,实际上也确实是这样,有些思想.功能自己确实没想到(必境我自己所能接触的业务场景是非常有限的). 当然在考虑Farse

Farseer.net轻量级开源框架 V1.x 入门篇:新版本说明

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次版本的开发从3月份开始,花了一个月的时间完成了概念版本设计.开发.到了4月份进行多次的内核的重构设计.到了5月份进行大规模的BUG修复.代码优化. 截止到今天(6月初),已知的BUG都已修复,并已在2个项目中应用了,并且运行良好. 本篇主题 1.新增队列管理: 新版本改变了V0.x时的使用方式,以Entityf

Farseer.net轻量级开源框架 V1.x 入门篇:表实体类映射

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 V1.x 入门篇:数据库配置及其它配置文件 下一篇:Farseer.net轻量级开源框架 V1.x 入门篇:表的数据操作 前言 上文讲述了数据库配置及其它配置文件的使用,搭建好数据库的链接方式了,接下来就是数据库中的表与实体类的关联了(映射). 在V1.x中,新增了视图.存储过程的映射.在以往的解决方案中,视图是当成”表“来操作的. 但是我们的视图通常只是为了方便查询而建的.而表支持写操作

Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 前言 上文讲述了数据库配置使用,搭建好数据库的链接方式了我们知道怎么做了. 事实上,至今我们仍然还没有讲到代码方面,花了前面这么多篇幅讲解,主要是想由浅入深,不然一上来给大家讲解这讲解那的,听的也一头雾水,反而得不到效果. 这篇比较重要,因为它是我们在使用Far

Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表/视图缓存操作 TableCahceSet.ViewCahceSet 前言 在上篇中,我们学会了存储过程的关系映射,其中知道了存储过程需要使用:ProcSet作为操作的上下文,以及在Field特性上,我们知道了新的两个属性用来存储过程的参数输入输出. 在上篇末尾,提到了

Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 前言 我们知道对于关系数据库,视图的出现可以在一定的情况下减少因要进行数据关联而带来的大量SQL语句,它可以让我们就像访问一张表一样的简单操作. 作为ORM来说,支持视图也是一项最基础的工作.然而大部份的ORM中,对视图没有特意去提供这个类,因为视图的SQ

Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射

导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作 前言 在V1.0中,新增了视图的映射.在以往的版本中,视图是当成”表“来操作的. 但是我们的视图通常只是为了方便查询而建的.而表支持写操作.会显的很不入调(当然MSSQL的视图也是支持写的,但是这里的视图映射是为了只读视图而来的) 先看下我DEMO中的上下文与视

Farseer.Net ORM开源框架 V1.x 教程目录

本篇教程将以Ver 1.x版本进行详细使用讲解 大家有任何疑问可以加入我们的官方QQ群进行讨论.QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net 整个框架的教程里,我们分为四个阶段,分别是:入门篇.中级篇.高级篇 入门篇:讲述框架的最常用.最基础的一些说明. 中级篇:讲述框架中一些技巧使用. 高级篇:讲述框架的流程原理.详细细述框架里的设计结构. 目录:入门篇 Farseer.net轻量级开源框架 V1.x 入门篇:新版本说明 Farseer.n

Farseer.net轻量级开源框架 入门篇:使用前说明

导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 框架性能测试 下一篇:Farseer.net轻量级开源框架 入门篇: 增.删.改.查操作演示 本篇讲解使用或者学习Farseer前需要知道一些事项: 在后续很多演示中,使用了很多扩展方法.但作者并没有明确出哪些是扩展的方法.所以读者要注意.在使用框架的时候,都需要引用扩展方法的命名空间:using FS.Extend; 为了方便,扩展方法统一放到FS.Extend中,在这里特别说