Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件
上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明
下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文
Farseer.Net是支持多数据库的ORM,当然这是ORM的一个最基本的要求。
使用者通过配置文件Db.Config,可切换指定的数据库而不需要修改项目中的任何代码。(Db.Config配置文件是可配置列表(多个)数据库的)
本篇讲述如何进行数据库环境的配置。同时也讲述其它配置文件的使用。
1、配置文件的路径:
不管是WebForm、Mvc、WinForm,配置文件统一放在:~/App_Data/ 中。请大家劳记这个路径。框架用到的所有配置文件的路径都会放在这里。


配置文件不需要手动创建,框架在运行时,会查找这个目录下的文件,不存在会自动创建它。
2、目前配置文件有:
| 序号 | 管理类 | 名称 | 配置路径 | 项目 | 描述 |
| 1 | DbConfigs | 数据库配置 | Db.Config | Farseer.Net | 数据库环境配置,支持多个数据库的配置 |
| 2 | SystemConfigs | 系统配置 | System.Config | 系统环境配置,比如是否生成SQL日志 | |
| 3 | ExceptionEmailConfigs | 异常邮件配置 | ExceptionEmail.Config | 当System.Config设置了异常通知时,会找到该邮件配置进行发送邮件 | |
| 4 | SqlMapConfigs | SQL脚本配置化 | SqlMap.Config | 允许客户端将SQL脚本写在该配置中,通过SqlSet进行执行(自动映射) | |
| 5 | EmailConfigs | 邮件配置 | Email.Config | Farseer.Net.Utils | 邮件发送配置,支持多个邮件的配置 |
| 6 | WebConfigs | 网站配置 | Web.Config | Farseer.Net.Utils.Web | 网站的基础配置,如上传保存的路径、网站Cookies域名称 |
| 7 | WebRewriterConfigs | Url重写配置 | WebRewriter.Config | 网站URL地址重写配置,支持多个地址配置 | |
| 8 | WebSystemConfigs | 网站系统配置 | WebSystem.Config | 网站系统配置,如Session、Cookies的保存时间、前缀等 |
3、配置文件的动态管理:
以上配置文件的对应管理类,统一放在:命名空间:FS.Configs中。
其中FS.Utils.AbsConfigs.cs是所有配置文件的基类,配置文件通过:序列化、反序列化进行持久化管理。
大家无需关心它们是如何运行的。只要知道这些配置文件被持久化到~/App_Data/中即可。
要修改他们时,只需要修改这个路径的物理文件即可,而不需要去修改他们的管理类。
如果你需要通过程序来读取这些配置文件,而在程序中使用时可以通过 类名.ConfigEntity.属性 来获取它们。
比如获取数据库配置文件的数据库类型的读取操作是:
DbConfigs.ConfigEntity.DbList[].DataType
DbConfigs.ConfigEntity得到的是整个数据库配置文件的配置
DbList[0]是指数据库配置的第1项。(因为是支持(多个)列表数据库配置的,一个项目中,数据库有可能是多个的)
同时我们也可以通过程序来动态的修改被保存它们:
DbConfigs.SaveConfig(new DbConfig());
4、重点讲述数据库的配置Db.Config:
/// <summary> 数据库连接配置 </summary>
public class DbInfo
{
/// <summary> 数据库连接串 </summary>
public string Server = ".";
/// <summary> 数据库帐号 </summary>
public string UserID = "sa";
/// <summary> 数据库密码 </summary>
public string PassWord = "";
/// <summary> 端口号 </summary>
public string Port = "";
/// <summary> 数据库类型 </summary>
public DataBaseType DataType = DataBaseType.SqlServer;
/// <summary> 数据库版本 </summary>
public string DataVer = "";
/// <summary> 数据库目录 </summary>
public string Catalog = "数据库名称";
/// <summary> 最小连接池 </summary>
public int PoolMinSize = ;
/// <summary> 最大连接池 </summary>
public int PoolMaxSize = ;
/// <summary> 数据库连接时间限制,单位秒 </summary>
public int ConnectTimeout = ;
/// <summary> 数据库执行时间限制,单位秒 </summary>
public int CommandTimeout = ;
}
通过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/进行查找是否有该数据库。
<?xml version="1.0"?>
<DbConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DbList>
<DbInfo>
<Server>.</Server>
<DataType>SqlServer</DataType>
<DataVer>2008</DataVer>
<Catalog>Farseer</Catalog>
<PoolMinSize>16</PoolMinSize>
<PoolMaxSize>100</PoolMaxSize>
<ConnectTimeout>30</ConnectTimeout>
<CommandTimeout>60</CommandTimeout>
</DbInfo>
<DbInfo>
<Server>User.db</Server>
<DataType>SQLite</DataType>
<PoolMinSize>16</PoolMinSize>
<PoolMaxSize>100</PoolMaxSize>
<ConnectTimeout>30</ConnectTimeout>
<CommandTimeout>60</CommandTimeout>
</DbInfo>
</DbList>
</DbConfig>
上面的XML文件,就是在~/App_Data/Db.Config中的。大家通过上面的介绍,可自行根据项目情况进行配置。
好了,本篇文章讲解到这,告诉了大家如何配置数据库、及SQL的日志分析。
在下一篇中,会讲述数据库上下文(DbContext)映射如何绑定到这个数据库配置文件中来。(配置文件可同时配置多个数据库,或动态配置它们)
上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明
下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文
QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net
Farseer.Net是一款ORM框架 + 常用工具 + 扩展集合。
Farseer 寓意:先知、预言家 通常在某些场合时,提供计谋、策略。也希望该框架能给大家提供最大化的便捷。
ORM:其英文全称是:Object(对象) Relational(关系) Mapping(映射)
Farseer.Net的目标是:快速上手、快速开发、简单方便。
Table.Data.User.Where(o=>o.ID == ).ToEntity();
Table.Data.User.Where(o=>o.ID > ).ToList();
Table.Data.User.Where(o=>o.ID != ).Delete();
Table.Data.User.Where(o=>o.ID != ).AddUp(o=>o.LoginCount, );
Table.Data.User.Where(o=>o.ID == ).Update(new User{ UserName = "newName" });
Table.Data.User.Insert(new User{ UserName = "newName" });
Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件的更多相关文章
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程数据操作
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作 下一篇:Farseer.net轻量级ORM开源 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作 下一篇:Farseer.net轻量级ORM开源框 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射 下一篇:Farseer.net轻量级ORM开源框 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:表实体类映射
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库上下文 下一篇:Farseer.net轻量级ORM开源框 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ...
- Farseer.net轻量级ORM开源框架 V1.x 教程目录
本篇教程将以Ver 1.x版本进行详细使用讲解 大家有任何疑问可以加入我们的官方QQ群进行讨论.QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net 整个 ...
随机推荐
- YTU 2596: 编程题B-日期格式
2596: 编程题B-日期格式 时间限制: 1 Sec 内存限制: 128 MB 提交: 981 解决: 74 题目描述 注:本题只需要提交编写的函数部分的代码即可. 将输入的日期格式 月/日/年 ...
- Code Project精彩系列(转)
Code Project精彩系列(转) Code Project精彩系列(转) Applications Crafting a C# forms Editor From scratch htt ...
- bzoj1513
二维线段树 听说二维线段树不能下传标记? 就是裸的二维线段树,由于每次高度只能增加,所以我们就可以标记永久化 每个线段树里有两个数组,mx和mark,每次修改路径上所有mx都要修改,mark是区间的精 ...
- 解决weblogic页面和控制台乱码问题
转自:https://blog.csdn.net/u010995831/article/details/53283746 之前一直有碰到weblogic各种乱码问题,要不就是页面乱码,要不就是控制台乱 ...
- VS2010打包回顾
1. 在vs2010 选择“新建项目”à“ 其他项目类型”à“ Visual Studio Installerà “安装项目”: 命名为:Setup1 . 这是在VS2010中将有三个文件夹, 1. ...
- E20180309-hm-xa
conformance n. 顺应,一致; symmetric adj. 相称性的,均衡的; raw adj. 生的,未加工的; 无经验的; 新近完成的; 发炎的,疼痛的; exceed ...
- bzoj 1661: [Usaco2006 Nov]Big Square 巨大正方形【枚举】
每句两个顶点确定正方形,取max即可 #include<iostream> #include<cstdio> using namespace std; int n,x,y,s, ...
- bzoj 2304: [Apio2011]寻路【spfa】
我是智障*3,读优写错了调了半天没发现= = 虽然是个最短路却有网络流一般的神建图啊. 首先发现在拐角处转弯是最优的,于是先离散化,然后矩形的四个顶点向距离它最近的上下左右点连边,跑spfa即可. 就 ...
- bzoj 4817: [Sdoi2017]树点涂色【树链剖分+LCT】
非常妙的一道题. 首先对于操作一"把点x到根节点的路径上所有的点染上一种没有用过的新颜色",长得是不是有点像LCT中的access操作?进而发现,如果把同一颜色的点连起来作为LCT ...
- [Swift通天遁地]一、超级工具-(5)使用UIWebView(网页视图)加载本地页面并调用JavaScript(脚本)代码
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...