导航

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

上一篇: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开源框架 目录

上一篇: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 入门篇:数据库配置文件的更多相关文章

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

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源 ...

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

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射 下一篇:Farseer.net轻量级ORM ...

  3. Farseer.net轻量级ORM开源框架 V1.x 入门篇:存储过程实体类映射

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作 下一篇:Farseer.net轻量级ORM开源 ...

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

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:表的数据操作 下一篇:Farseer.net轻量级ORM开源框 ...

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

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件 下一篇:Farseer.net轻量级ORM开源 ...

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

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

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

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

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

    导航 目   录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言 V1.x版本终于到来了.本次 ...

  9. Farseer.net轻量级ORM开源框架 V1.x 教程目录

    本篇教程将以Ver 1.x版本进行详细使用讲解 大家有任何疑问可以加入我们的官方QQ群进行讨论.QQ群:116228666 (Farseer.net开源框架交流) 请注明:Farseer.Net 整个 ...

随机推荐

  1. Hadoop Hive概念学习系列之hive里的索引(十三)

    Hive支持索引,但是Hive的索引与关系型数据库中的索引并不相同,比如,Hive不支持主键或者外键. Hive索引可以建立在表中的某些列上,以提升一些操作的效率,例如减少MapReduce任务中需要 ...

  2. YTU 2901: G-险恶逃生II

    2901: G-险恶逃生II 时间限制: 1 Sec  内存限制: 128 MB 提交: 44  解决: 14 题目描述     SOS!!!koha is trapped in the danger ...

  3. Silverlight数据绑定之DataGrid

    Silverlight数据绑定之DataGrid 时间:2011-08-03 01:59来源:网易博客 作者:Wilson. 点击:次 注:所有代码以C#为例 DataGrid绑定的数据对象: 1.D ...

  4. uwsgi 配置 初试

    /************************************************************************************** * uwsgi 配置 初 ...

  5. BZOJ2283: [Sdoi2011]火星移民

    Description 在2xyz年,人类已经移民到了火星上.由于工业的需要,人们开始在火星上采矿.火星的矿区是一个边长为N的正六边形,为了方便规划,整个矿区被分为6*N*N个正三角形的区域(如图1) ...

  6. ASP.NET Core MVC 打造一个简单的图书馆管理系统 (修正版)(一) 基本模型以及数据库的建立

    前言: 本系列文章主要为我之前所学知识的一次微小的实践,以我学校图书馆管理系统为雏形所作. 本系列文章主要参考资料: 微软文档:https://docs.microsoft.com/zh-cn/asp ...

  7. HDU1429:胜利大逃亡(续)

    传送门 题意 给出一个迷宫,门需要钥匙来打开,t秒内能否从起点到达终点 分析 这题我用以前一道题的代码改了改就过了,具体思想:设置vis[status][x][y],status记录到达该点拥有的钥匙 ...

  8. bzoj 2016: [Usaco2010]Chocolate Eating【二分+贪心】

    二分答案,贪心判断,洛谷上要开long long #include<iostream> #include<cstdio> using namespace std; const ...

  9. 洛谷 P2770 航空路线问题【最大费用最大流】

    记得cnt=1!!因为是无向图所以可以把回来的路看成另一条向东的路.字符串用map处理即可.拆点限制流量,除了1和n是(i,i+n,2)表示可以经过两次,其他点都拆成(i,i+n,1),费用设为1,原 ...

  10. NOIp2013 货车运输 By cellur925

    题目传送门 A 国有 n 座城市,编号从 1 到 n ,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重. 现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下 ...