一种基于c#的快捷数据访问层实现方法

文档序号:6572649阅读:825来源:国知局
专利名称:一种基于c#的快捷数据访问层实现方法
技术领域
本发明涉及一种基于C#的快捷数据访问层实现方法。
背景技术
经过了最近 20 年,面向 对象编程技术(object-oriented (00) programmingtechnologies)在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像类(classes)、对象(objects)、方法(methods)这样的语言特性。C#是一种典型的面向对象语言,现在一种常用开发方式就是基于面向对象的三层架构。通常意义上的三层架构就是将整个业务应用划分为表现层(Π)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。其中数据访问层直接操作数据库,对不同的模型(Model)数据进行增、删、改、查等操作。

发明内容
本发明所要解决的技术问题是提供一种节省大量开发的工作量和单元测试的工作量,并且当模型结构发生改变,也不需要连带修改其他函数的基于C#的快捷数据访问层实现方法。本发明是通过以下技术方案来实现的一种基于C#的快捷数据访问层实现方法,包含三层构架,所述三层构架具有User模型层、UserControl Ier业务层和UserProvider数据层,其步骤如下I)定义一个或两个属性类;2)对模型层进行解析;3)定义基础数据层BaseProvider抽象类,及各种数据类型的实用类;4)数据访问层工厂 ProviderManager ;5)不同数据访问模式之间的切换及结合。进一步地,所述属性类包含表属性类和字段属性。进一步地,所述表属性包含表名、主键、连接名和默认排序属性。进一步地,所述字段属性包含字段类型和字段长度属性。本发明的基于C#的快捷数据访问层实现方法的有益效果是减少开发者工作量,在数据访问层方面达到快速开发的效果。具体有点如下1)减少在数据访问层的重复开发,能显著提高工作效率;2)轻松实现不同数据库,不同数据访问类型(比如Oracle与Mssql)的并行以及切换;3)快速建表;4)对于需要扩展的数据函数自动识别对应数据访问类。
具体实施例方式一种基于C#的快捷数据访问层实现方法,包含三层构架,所述三层构架具有User模型层、UserController业务层和UserProvider数据层,其步骤如下1)定义一个或两个属性类;2)对模型层进行解析;3)定义基础数据层BaseProvider抽象类,及各种数据类型的实用类;4)数据访问层工厂ProviderManager ;5)不同数据访问模式之间的切换及结合。其中,所述属性类包含表属性类和字段属性。所述表属性包含表名、主键、连接名和默认排序属性。所述字段属性包含字段类型(主键和普通)和字段长度属性。实施例II)调用某个模型数据访问 层实例;2)判断是否已有静待缓存;3)已有静待缓存返回实例。实施例2I)调用某个模型数据访问层实例;2)判断是否已有静待缓存;3)没有静待缓存进入判断是否有对应的数据访问类;4)有对应的数据访问类进入实例化该类;5)将该实例放入静态缓存;6)返回实例。实施例3I)调用某个模型数据访问层实例;2)判断是否已有静待缓存;3)没有静待缓存进入判断是否有对应的数据访问类;4)没有对应的数据访问类进入实例化该类;5)根据该模型的连接方式生成改对应实例;6)将该实例放入静态缓存;7)返回实例。附录User模型层
[DBTablelnfo(〃T_User〃,"UserID")]public class User{
private int userID;
[DBFieldInfo(DBFieldType. Key)] public int UserIDf get; set; }
private string userName;
[DBFieldInfo(DBFieldType. Normal)] public string UserName{ get; set; }
private int roleID;
[DBFieldInfo(DBFieldType. Normal)] public int RoleID{ get; set; }
I附录UserController 业务层
public class UserController
{
public static List<User> GetList(string filter)
{
return ProviderManager. GetProvider<User>(). GetList(filter);
}
public st atic User Insert (User user)
{
return ProviderManager. GetProvider<User>(). Insert (user);
}
///其他函数
}附录UserProvider 数据层
public class UserProvider : SqlBaseProvider<User>
{
public override void Delete(int keyValue)
{
//自定义删除操作
}
}本发明的基于C#的快捷数据访问层实现方法的有益效果是减少开发者工作量,在数据访问层方面达到快速开发的效果。具体有点如下1)减少在数据访问层的重复开发,能显著提高工作效率;2)轻松实现不同数据库,不同数据访问类型(比如Oracle与Mssql)的并行以及切换;3)快速建表;4)对于需要扩展的数据函数自动识别对应数据访问类。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何不经过创造性劳动想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书所限定的保护范围为准。
权利要求
1.一种基于C#的快捷数据访问层实现方法,其特征在于包含三层构架,所述三层构架具有User模型层、UserController业务层和UserProvider数据层,其步骤如下 1)定义一个或两个属性类; 2)对模型层进行解析; 3)定义基础数据层BaseProvider抽象类,及各种数据类型的实用类; 4)数据访问层工厂ProviderManager; 5)不同数据访问模式之间的切换及结合。
2.根据权利要求I所述的基于C#的快捷数据访问层实现方法,其特征在于所述属性类包含表属性类和字段属性。
3.根据权利要求2所述的基于C#的快捷数据访问层实现方法,其特征在于所述表属性包含表名、主键、连接名和默认排序属性。
4.根据权利要求2所述的基于C#的快捷数据访问层实现方法,其特征在于所述字段属性包含字段类型和字段长度属性。
全文摘要
本发明公开了一种基于C#的快捷数据访问层实现方法,包含三层构架,所述三层构架具有User模型层、UserController业务层和UserProvider数据层,其步骤如下1)定义一个或两个属性类;2)对模型层进行解析;3)定义基础数据层BaseProvider抽象类,及各种数据类型的实用类;4)数据访问层工厂ProviderManager;5)不同数据访问模式之间的切换及结合。使用本发明的模式下,对于开发人员来说,无疑节省了大量开发的工作量和单元测试的工作量,并且当模型结构发生改变,也不需要连带修改其他函数。
文档编号G06F17/30GK102819590SQ20121027717
公开日2012年12月12日 申请日期2012年8月6日 优先权日2012年8月6日
发明者涂凌翔 申请人:厦门市美亚柏科信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1