• 数据库分表时OR Mapping方法


    最近使用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;
                    …

    }

    }

  • 相关阅读:
    c#数据绑定(3)——数据转化为信息
    c#数据绑定(2)——删除DataTable的数据
    C # 数据绑定(1)——将DataTabel的data添加ListView
    如何下载Chrome离线版EXE安装文件和MSI版安装文件
    Windows Installer (MSI) 详解 参数介绍
    7za.exe 命令行用法,参数介绍
    命令行启动Win7系统操作部分功能
    升级WordPress后开启友情链接管理模块
    如何将文件所有者改为TrustedInstaller
    开机自检时出现问题后会出现各种各样的英文短句解说
  • 原文地址:https://www.cnblogs.com/2018/p/1940573.html
Copyright © 2020-2023  润新知