西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页西西教程数据库教程 → 实现数据库分表的方法、作用和意义

实现数据库分表的方法、作用和意义

相关软件相关文章发表评论 来源:本站整理时间:2011/1/20 22:30:30字体大小:A-A+

作者:佚名点击:472次评论:0次标签: 数据库

  • 类型:办公软件大小:35KB语言:中文 评分:1.2
  • 标签:
立即下载
 最近使用ADO.net Entity应用中遇到一个分表的应用,IDE中是不可视化支持这个的,为此使用了基于LINQ的方法解决了该问题。

数据库分表的意义和目的
分表技术顾名思义,就是把若干个存储相同类型数据的表分成几个表分表存储,在提取数据的时候,不同的用户访问不同的表,互不冲突,减少锁表的几率。

详细参考:

http://club.topsage.com/thread-1842602-1-1.html

基于LINQ的实现
具体的步骤
Ø 使用sqlmetal.exe(VS开发工具带) 生成实体类和架构文件

Ø 选择需要使用的实体类和配置文件,形成使用的模板

Ø 基于这些模板,使用XmlMappingSource 类和LINQ访问数据库


例子
命令行执行
sqlmetal /server:localhost /database:northwind /code:ns.cs /map:ns.xml /namespace:DAL

架构文件例子
<?xml version="1.0" encoding="utf-8"?>
<Database Name="{0}" xmlns="http://schemas.microsoft.com/linqtosql/mapping/2007">
<Table Name="{1}">
<Type Name="Customer">
<Column Name="CustomerID" Member="CustomerID" Storage="_CustomerID" DbType="NChar(5) NOT NULL" CanBeNull="false" IsPrimaryKey="true" />
<Column Name="CompanyName" Member="CompanyName" Storage="_CompanyName" DbType="NVarChar(40) NOT NULL" CanBeNull="false" />
<Column Name="ContactName" Member="ContactName" Storage="_ContactName" DbType="NVarChar(30)" />
</Type>
</Table>
</Database>

{0} {1}表示可变的数据库和表名称

实体例子
public partial class Customer: INotifyPropertyChanging, INotifyPropertyChanged { private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty); private string _CustomerID; private string _CompanyName; private string _ContactName;…



代码访问
XmlMappingSource xml = XmlMappingSource.FromXml(string.Format(AppResource.SentenceTemplate, "IAT2011", sentenceName));
using (DataContext ctx = new DataContext(System.Configuration.ConfigurationManager.ConnectionStrings["IATDB"].ConnectionString, xml))
{
ctx.DeferredLoadingEnabled = true;


}

}

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)