`

写了个DAL出来,有兴趣的朋友们来看看

阅读更多


    为了新书写了这个东西,费了4个晚上的时间来弄,代码很乱,所以暂不放出代码,在release beta版本的时候放出源代码
    主要是喜欢SubSonic的方便,又想能够和ibaties一样能够自己控制Sql,所以主要是综合,还有就是SubSonic需要数据库连接,这里只需要Create的脚本就行了,同样加入了Cache机制。
    放出来是希望有兴趣的朋友帮我测试测试,如果喜欢的朋友比较多我下周会架设一个SVN来共享代码,也希望有时间的高手能提供自己的代码。
    下载:http://www.cnblogs.com/Files/Alexander-Lee/WebSite4TestDbScript.rar 

     以下是配置和使用的说明:

    DbScript说明

配置方法之:天龙八步

第一步,在网站里引用DbScript.Dll
第二步,将
 <configSections>
  <section name="DbScriptService" type="Alexander.DbScript.SectionManager,DbScript" restartOnExternalChanges="true" allowDefinition="MachineToApplication"/>
 </configSections>
 原封不动的放入Web.Config里,要紧贴<configuration>
 在</configSections>后面加入
 <DbScriptService ConnectionString="连接字符串" ProviderType="数据库类型"></DbScriptService>

 ProviderType可能的选项有SqlServer2005,SqlServer,Oracle,MySql,Access
 
第三步,打开连接字符串所连接的数据库,导出创建数据库的脚本,如下

USE [donkeybang]
GO
/****** Object:  Table [dbo].[DonkeyPost]    Script Date: 03/23/2007 22:09:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[DonkeyPost](
 [PostID] [varchar](50) NOT NULL,
 [PostTitle] [varchar](200) NOT NULL,
 [PostUser] [bigint] NOT NULL,
 [Tags] [varchar](200) NOT NULL,
 [PostText] [ntext] NOT NULL,
 [PostDate] [datetime] NOT NULL,
 [PostType] [int] NOT NULL,
 CONSTRAINT [PK_Donkey] PRIMARY KEY CLUSTERED
(
 [PostID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[DonkeyUser]    Script Date: 03/23/2007 22:09:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[DonkeyUser](
 [DonkeyID] [int] IDENTITY(1000,1) NOT NULL,
 [DonkeyLogin] [varchar](100) NOT NULL,
 [DonkeyNick] [nchar](20) NULL,
 [DonkeyPassword] [varchar](20) NOT NULL,
 [LivingCity] [varchar](20) NULL,
 CONSTRAINT [PK_DonkeyUser] PRIMARY KEY CLUSTERED
(
 [DonkeyID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

注意,可以将多表的Create脚本放在一个文件(建议这么做),每个表必需要有一个主键(次点要特别注意)。

第四步,将这个脚本存为script.sql放入App_Code文件夹

第五步 在Script.sql最后面写入#Command Start 之下就是查询的脚本

第六部 在Script.sql下按照
  
 表名:查询名称{Select语句}
 
 这样子的格式写入可配置查询脚本,注意,参数用#参数名表示,且参数名要等于表名,比如
 
 select * from tb where id=#id;
第七步 在Web.Config里的<compilation debug="true"/>这个地方改为如下

   <compilation debug="true">
    <buildProviders>
     <add type="Alexander.DbScript.Builder,DbScript" extension=".sql"/>   
    </buildProviders>
   </compilation>

第八步 编译网站,之后就可以很开心的操作数据库了

使用方法

IExecute exec = ExecuteFactory.GetExecuter();得到实例,GetExecuter方法有重载,如果不想用配置里的连接,可以在这里直接配置

如果要插入一条记录,假如有表A,则

A a=new A();
a.XX=XX
......
exec.Insert<A>(a);

如果要修改数据

A a=new A();
a.XX=XX
......
exec.Update<A>(a);

删除
A a=new A();
a.XX=XX
......
exec.Delete<A>(a);

查询一个(根据主键)

A a=new A();
a.XX=XX
......
exec.GetOne<A>(a);

查询一个列表

List<A> list=Fetch.XXXX(......);
你会发现。XXXX和我们在Script.Sql里配置查询名称是一样的,参数也是A类型,就和我们手写的一样

其余特性自己发掘

还有你会发现查询的时候第二次会比第一次快得多

分享到:
评论

相关推荐

    Linq to sql DAL通用操作类

    Linq to sql DAL通用操作类 使用方便,不必每个表都写一个DAL

    DAL.zip_E9A_SQLHelper_dal库_dbhelper_oracle

    总的来说,“DAL.zip_E9A_SQLHelper_dal库_dbhelper_oracle”是一个针对ASP.NET和Oracle数据库交互的实用工具集。它包括了一个定制的SQLHelper类,以及一个DAL库,可以帮助开发者轻松管理和操作Oracle数据库,提升...

    C#DAL代码生成器

    "C# DAL代码生成器"是一个自编写的工具,用于自动生成C#语言的数据访问层代码。虽然生成的代码可能包含一些小错误,如缺失的标点符号,但经过轻微调整后,这些代码通常可以正常工作。这样的工具对于快速构建原型或...

    通用Bll 通用Dal

    在.NET框架中,通用BLL(Business Logic Layer)和通用DAL(Data...总的来说,这个项目利用.NET反射实现了通用BLL和DAL,降低了开发成本,提高了开发效率。在实际应用中,应根据项目需求和性能要求权衡使用反射的利弊。

    后台存储过程及DAL代码模板

    模板化的DAL代码意味着有一套预定义的结构和模式,可以帮助开发人员快速生成和组织数据库访问代码,提高开发效率并保持代码一致性。 在实际开发中,一个DAL代码模板可能包含以下几个部分: 1. **接口定义**:定义...

    DAL.rar_DAL

    数据访问层(DAL)是软件开发中的一个关键组件,主要负责与数据库进行交互,处理数据的读取、写入和更新等操作。在C#编程中,构建一个高效且易于维护的数据访问层对于任何应用程序都是至关重要的。在这个名为"DAL....

    C# 生成多种DAL层次代码

    本资源"**C# 生成多种DAL层次代码**"提供了多种在C#环境下实现DAL的方法,包括OracleDBHelper、SQLDBHelper、IBatisNet、ADO.NET以及EnterpriseLibrary,这些工具和框架各有特点,适合不同开发需求。 1. **Oracle...

    DAL层(三层架构中的)

    它调用数据访问层来执行数据操作,并将处理后的结果返回给表现层。 3. 数据访问层(Data Access Layer):正如之前所述,它是数据库操作的接口,负责与数据库进行通信,包括连接、查询、事务管理等。 **数据库连接*...

    三层架构 c# BLL DAL MODEL

    在IT领域,尤其是在软件开发中,三层架构是一种广泛采用的设计模式,它将应用程序分为三个主要层次:表示层(UI Layer)、业务逻辑层(Business Logic Layer, BLL)和数据访问层(Data Access Layer, DAL)。...

    java 通用数据访问层dal

    java dal 封装的通用dao 数据访问层,如果你不喜欢用Hibernate、Mybaits这类ORM框架,喜欢Spring JdbcTemplate或DbUtils,那么可以试试这个封装的通用dal

    数据访问层DAL设计框架_Demo.rar

    数据访问层(Data Access Layer, DAL)是软件架构中的一个重要组成部分,主要负责处理应用程序与数据库之间的交互。在C#编程中,设计一个高效且可扩展的DAL框架对于任何基于数据库的应用程序都至关重要。本框架...

    CodeSmith Dal、Model模版

    总的来说,CodeSmith Dal和Model模版是开发过程中的利器,它们可以帮助开发者快速构建稳定、高效的数据库访问层和业务模型,从而专注于更重要的业务逻辑设计,提升整体开发效率。同时,灵活的模板系统也为个性化定制...

    Model/BLL/DAL 三层小例子

    它将应用程序分为三个主要的逻辑层次:表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer),简称MVC(Model-View-Controller)中的M、BLL和DAL。这个“Model/BLL/...

    对DAL数据访问层的封装,一个泛型接口,一个实现泛型接口的父类

    在这个特定的案例中,我们看到的是一个使用了Entity Framework(EF)技术的DAL封装实例。Entity Framework是一种对象关系映射(ORM)框架,它可以将数据库操作转化为对.NET对象的操作,简化了数据库编程。 标题中的...

    生成C#中的Model,BLL,DAL文件

    总的来说,"生成C#中的Model,BLL,DAL文件"这个工具是C#开发中的得力助手,它简化了三层架构项目的初期构建,使得开发者可以更快地进入业务逻辑的实现阶段,从而提升整体开发速度和质量。在大型项目中,这种自动化...

    携程开源DAL代码生成器

    携程开源DAL框架 Ctrip DAL支持流行的分库分表操作,支持Java和C#,支持Mysql和MS SqlServer。使用该框架可以在有效地保护企业已有数据库投资的同时,迅速,可靠的为企业提供数据库访问层的横向扩展能力。整个框架...

    很有用的DAL文件(C#方面的)

    在IT行业中,DAL,全称为Data Access Layer,是软件架构中的一个重要组成部分,主要负责处理应用程序与数据库之间的数据交互。在C#编程环境下,构建一个高效、可维护的DAL层是提高软件质量的关键步骤之一。本资源...

    携程数据库访问框架dal

    dal-client-2.0.13-release javax.servlet-3.0.0.v201103241009.jar mssql-jdbc-6.4.0.jre7.ctrip.jar 合集

Global site tag (gtag.js) - Google Analytics