zoukankan      html  css  js  c++  java
  • Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置文件

    导航

    目   录: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.属性  来获取它们。  

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

    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中的。大家通过上面的介绍,可自行根据项目情况进行配置。

    总结

      好了,本篇文章讲解到这,告诉了大家如何配置数据库、及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的目标是:快速上手、快速开发、简单方便。

    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" });
  • 相关阅读:
    Mac挂载分区
    连接SFTP命令
    【转】10.13.6蓝牙失效的解决方法(Broadcom-BCM94352z-DW1560)
    Jetbrains2020系列配置路径变动(Pycharm2020双击无法打开)
    libtorch 常用api函数示例(史上最全、最详细)
    有用链接
    cuda 编程1
    CMakeLists.txt
    模型压缩--剪枝,tensorrt实验调研
    iou map TP TN FP FN Precision Recall
  • 原文地址:https://www.cnblogs.com/steden/p/4555261.html
Copyright © 2011-2022 走看看