首页 > 范文大全 > 正文

基于LinqToSql的多DC的数据库模式设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于LinqToSql的多DC的数据库模式设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:LinqToSql自从2008年随着Visual Studio 2008推出以来,就广泛应用于信息系统开发的中,并得到用户的肯定。但是LinqToSql在面向大型的关系数据库时,由于只采用一个数据库管理器的模式造成的管理难度会随着系统的日益增加而变得越来越难以管理。为了解决这个问题,笔者提出了一种多DC数据库模式,并在实际项目中进行验证。实践表示,多DC的数据库设计模式能够有效地解决大型数据库的管理,降低管理难度和风险,很好的解决了大型数据库管理困难的问题。

关键词:LinqToSql;大型数据库;多DC;模式设计

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)25-5598-02

1 概述

LINQ(Language Integrated Query)是微软在Visual Studio2008以后集成了全新的Linq集成式查询语言,借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据。目前为止LINQ所支持的数据源有SQL Server、Oracle、XML以及内存中的数据集合。开发人员也可以使用其提供的扩展框架添加更多的数据源,例如MySQL、Amazon甚至是GoogleDesktop。

其中Linq to sql(或者叫DLINQ)是LINQ(.NET语言集成查询)的一部分,全称基于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能,它和Linq to xml、Linq to objects、Linq to dataset、Linq to entities等组成了强大的LINQ。linqtosql自2008年以来,已经被广泛应用于信息系统的开发中,它具有以下特点:上手简单、代码简洁、开发高效、误码率低及任何对象或数据源都可以按数据库方式定制等特点,为数据交互带来真正方便。但是目前LinqToSql在解决大型数据库时,存在单管理模式难以管理的问题。为了解决这个问题,笔者撰写了此文。

2 问题描述

从技术角度而言,LINQ定义了大约40个查询操作符,如select、from、in、where以及order by(C#中)。使用这些操作符可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。

这些数据类型在使用时都需要一个统一的管理模块对各种数据类型进行统一的管理。在LinqToSql数据库模型中,使用名为DataContext的对象对数据库进行统一管理。它是通过数据库连接映射的所有实体的源,能够跟踪对所有检索到的实体所做的更改,并且保留一个“标识缓存”,该缓存确保使用同一对象实例表示多次检索到的实体。通常情况下,DataContext 实例设计为持续一个工作单位。 DataContext 是轻量的,创建它不需要很大的开销。 典型的 LINQ to SQL 应用程序在方法范围内创建 DataContext 实例,或将这些实例创建为生存期较短的类(这些类表示相关数据库操作的逻辑集合)的成员。

但是由于DataContext数据模型在管理时,需要统一的管理模式,虽然能够很好的解决数据的连接、读取、修改和更新等操作,但是并不利于大型的管理。当项目规模比较大时,数据库的更新会比较频繁,这将带来一系列的问题。其中最重要的一个问题就是在大型数据库开发环境中,多人协作的工作模式问题。一旦数据库结构修改了,那么对应的DataContext就需要进行修改,这给团队的协同开发带来不小的麻烦。

3 数据处理模式设计

为了解决这个问题,本设计采取多DataContext的设计模式。多DataContext模式即要实现数据的统一,也要能够解决数据整合度过高的问题,解决数据库在修改后,尽可能减少对团队开发成员的影响。

数据模型如下图所示。

本设计分三层,最顶层为统一的管理器DataContextManager。它的主要功能是用于多DataContext的管理,包括DataContext的配置、自动和手工选择,数据传送等,而且每个dc分到不同的子DataContext中,这样问题得到细化。

第二层为DataContext层,分别负责不同的数据表的管理。这里的数据表可以是单张也可以是多个,主要分类的依据是相互之间的关系,原则上以完全独立性的单个或多个表为一个统一的DataContext,这个既可达到数据分离的目的,又可以使相关的数据放在一起处理。

第三层为数据表层,即数据库中的表。数据表的设计依据相关的范式原则。此层为数据库设计者考虑内容。

4 功能实现

5 结论

通过多DataContext的综合管理模块,很好地解决了开题提出的问题。对于DataContext数据模型在管理时,进行了统一模块化的管理,当项目规模比较大时,数据库的更新针对相应的模块进行更新,不再需要对整个数据库结构进行更新了。一旦数据库结构修改了,那么通过DataContextManger将对应的DataContext进行修改即可。所以很好地解决了过去单一的数据库统一管理的弊端,提供了一种全新而灵活的管理方式。

本方法在实际项目中得到了具体应用,根据用户反应,实际效果反应良好,具有一定的市场价值和应用前景。

参考文献:

[1] 战非. .NET平台下基于LINQ三层架构的实现[J].电脑知识与技术,2010, 6(11).

[2] 林勤花. .NET平台下基于LINQ三层架构的应用[J].电脑与信息技术,2013 ,21(1).

[3] 胡文君. .NET平台下基于LINQ的多层架构的研究[J].电脑知识与技术,2012, 8(11).

[4] 马鹏烜.基于LINQ to Entity数据访问技术的应用研究[J].现代计算机,2011(13).