1.) 手工书写代码,自定义需要映射的表和关系

自定义DataContext类using System;
自定义DataContext类
using System.Collections.Generic;
自定义DataContext类
using System.Linq;
自定义DataContext类
using System.Text;
自定义DataContext类
using System.Data.Linq; //DataContext在此命名空间下
自定义DataContext类
using System.Data.Linq.Mapping; //[Database] [Tabale] 等属性在此命名空间下
自定义DataContext类

自定义DataContext类
namespace LinqConsole

 
        2.) 使用Sqlmetal自动生成code(与在 VS2008可视化操作结果一样)

        Sqlmetal 使用如下:

自定义DataContext类>sqlmetal /?
自定义DataContext类Microsoft (R) Database Mapping Generator 
2008 Beta 2 version 1.00.20706
自定义DataContext类
for Microsoft (R) .NET Framework version 3.5
自定义DataContext类Copyright (C) Microsoft Corporation. All rights reserved.
自定义DataContext类
自定义DataContext类SqlMetal [options] [
<input file>]
自定义DataContext类
自定义DataContext类  Generates code and mapping 
for the LINQ to SQL component of the .NET framework. SqlMetal can:
自定义DataContext类  
- Generate source code and mapping attributes or a mapping file from a database.
自定义DataContext类  
- Generate an intermediate dbml file for customization from the database.
自定义DataContext类  
- Generate code and mapping attributes or mapping file from a dbml file.
自定义DataContext类
自定义DataContext类Options:
自定义DataContext类  
/server:<name>             Database server name.
自定义DataContext类  
/database:<name>           Database catalog on server.
自定义DataContext类  
/user:<name>               Login user ID (default: use Windows Authentication).
自定义DataContext类  
/password:<password>       Login password (default: use Windows Authentication).
自定义DataContext类  
/conn:<connection string>  Database connection string. Cannot be used with /server, /database, /user or /password option
自定义DataContext类  
/timeout:<seconds>         Timeout value to use when SqlMetal accesses the database (default0 which means infinite).
自定义DataContext类
自定义DataContext类  
/views                     Extract database views.
自定义DataContext类  
/functions                 Extract database functions.
自定义DataContext类  
/sprocs                    Extract stored procedures.
自定义DataContext类
自定义DataContext类  
/dbml[:file]               Output as dbml. Cannot be used with /map option.
自定义DataContext类  
/code[:file]               Output as source code. Cannot be used with /dbml option.
自定义DataContext类  
/map[:file]                Generate mapping file, not attributes. Cannot be used with /dbml option.
自定义DataContext类
自定义DataContext类  
/language:<language>       Language for source code: VB or C# (default: derived from extension on code file name).
自定义DataContext类  
/namespace:<name>          Namespace of generated code (default: no namespace).
自定义DataContext类  
/context:<type>            Name of data context class (default: derived from database name).
自定义DataContext类  
/entitybase:<type>         Base class of entity classes in the generated code (default: entities have no base class).
自定义DataContext类  
/pluralize                 Automatically pluralize or singularize class and member names using English language rules.
自定义DataContext类  
/serialization:<option>    Generate serializable classes: None or Unidirectional (default: None).
自定义DataContext类  
/provider:<type>           Provider type (default: provider is determined at run time).
自定义DataContext类
自定义DataContext类  
<input file>               May be a SqlExpress mdf file, a SqlCE sdf file, or a dbml intermediate file.
自定义DataContext类
自定义DataContext类Create code from SqlServer:
自定义DataContext类  SqlMetal 
/server:myserver /database:northwind /code:nwind.cs /namespace:nwind
自定义DataContext类
自定义DataContext类Generate intermediate dbml file from SqlServer:
自定义DataContext类  SqlMetal 
/server:myserver /database:northwind /dbml:northwind.dbml /namespace:nwind
自定义DataContext类
自定义DataContext类Generate code with external mapping from dbml:
自定义DataContext类  SqlMetal 
/code:nwind.cs /map:nwind.map northwind.dbml
自定义DataContext类
自定义DataContext类Generate dbml from a SqlCE sdf file:
自定义DataContext类  SqlMetal 
/dbml:northwind.dbml northwind.sdf
自定义DataContext类
自定义DataContext类Generate dbml from SqlExpress local server:
自定义DataContext类  SqlMetal 
/server:.\sqlexpress /database:northwind /dbml:northwind.dbml
自定义DataContext类
自定义DataContext类Generate dbml by 
using a connection string in the command line:
自定义DataContext类  SqlMetal 
/conn:"server='myserver'; database='northwind'" /dbml:northwind.dbml

    生成Northwind库,生成的代码为mapping.cs,添加入Vs2008就可以直接使用生成的类、方法:

自定义DataContext类>sqlmetal /server:. /database:northwind /code:mapping.cs /language:csharp
自定义DataContext类Microsoft (R) Database Mapping Generator 
2008 Beta 2 version 1.00.20706
自定义DataContext类
for Microsoft (R) .NET Framework version 3.5
自定义DataContext类Copyright (C) Microsoft Corporation. All rights reserved.
自定义DataContext类

      3.) 使用Sqlmetal生成映射文件.xml

自定义DataContext类>sqlmetal /server:. /database:northwind /map:mapping.xml

     生成mapping.xml文件,部分如下:(只需要Prodcuts表和Orders表)

自定义DataContext类<?xml version="1.0" encoding="utf-8"?>
自定义DataContext类
<Database Name="northwind" xmlns="http://schemas.microsoft.com/linqtosql/mapping/2007">
自定义DataContext类  
<Table Name="dbo.Customers" Member="Customers">
自定义DataContext类    
<Type Name="Customers">
自定义DataContext类      
<Column Name="CustomerID" Member="CustomerID" Storage="_CustomerID" DbType="NChar(5) NOT NULL" CanBeNull="false" IsPrimaryKey="true" />
自定义DataContext类      
<Column Name="CompanyName" Member="CompanyName" Storage="_CompanyName" DbType="NVarChar(40) NOT NULL" CanBeNull="false" />
自定义DataContext类      
<Column Name="ContactName" Member="ContactName" Storage="_ContactName" DbType="NVarChar(30)" />
自定义DataContext类      
<Column Name="ContactTitle" Member="ContactTitle" Storage="_ContactTitle" DbType="NVarChar(30)" />
自定义DataContext类      
<Column Name="Address" Member="Address" Storage="_Address" DbType="NVarChar(60)" />
自定义DataContext类      
<Column Name="City" Member="City" Storage="_City" DbType="NVarChar(15)" />
自定义DataContext类      
<Column Name="Region" Member="Region" Storage="_Region" DbType="NVarChar(15)" />
自定义DataContext类      
<Column Name="PostalCode" Member="PostalCode" Storage="_PostalCode" DbType="NVarChar(10)" />
自定义DataContext类      
<Column Name="Country" Member="Country" Storage="_Country" DbType="NVarChar(15)" />
自定义DataContext类      
<Column Name="Phone" Member="Phone" Storage="_Phone" DbType="NVarChar(24)" />
自定义DataContext类      
<Column Name="Fax" Member="Fax" Storage="_Fax" DbType="NVarChar(24)" />
自定义DataContext类      
<Association Name="FK_CustomerCustomerDemo_Customers" Member="CustomerCustomerDemo" Storage="_CustomerCustomerDemo" ThisKey="CustomerID" OtherKey="CustomerID" DeleteRule="NO ACTION" />
自定义DataContext类      
<Association Name="FK_Orders_Customers" Member="Orders" Storage="_Orders" ThisKey="CustomerID" OtherKey="CustomerID" DeleteRule="NO ACTION" />
自定义DataContext类    
</Type>
自定义DataContext类  
</Table>
自定义DataContext类  
<Table Name="dbo.Orders" Member="Orders">
自定义DataContext类    
<Type Name="Orders">
自定义DataContext类      
<Column Name="OrderID" Member="OrderID" Storage="_OrderID" DbType="Int NOT NULL IDENTITY" IsPrimaryKey="true" IsDbGenerated="true" AutoSync="OnInsert" />
自定义DataContext类      
<Column Name="CustomerID" Member="CustomerID" Storage="_CustomerID" DbType="NChar(5)" />
自定义DataContext类      
<Column Name="EmployeeID" Member="EmployeeID" Storage="_EmployeeID" DbType="Int" />
自定义DataContext类      
<Column Name="OrderDate" Member="OrderDate" Storage="_OrderDate" DbType="DateTime" />
自定义DataContext类      
<Column Name="RequiredDate" Member="RequiredDate" Storage="_RequiredDate" DbType="DateTime" />
自定义DataContext类      
<Column Name="ShippedDate" Member="ShippedDate" Storage="_ShippedDate" DbType="DateTime" />
自定义DataContext类      
<Column Name="ShipVia" Member="ShipVia" Storage="_ShipVia" DbType="Int" />
自定义DataContext类      
<Column Name="Freight" Member="Freight" Storage="_Freight" DbType="Money" />
自定义DataContext类      
<Column Name="ShipName" Member="ShipName" Storage="_ShipName" DbType="NVarChar(40)" />
自定义DataContext类      
<Column Name="ShipAddress" Member="ShipAddress" Storage="_ShipAddress" DbType="NVarChar(60)" />
自定义DataContext类      
<Column Name="ShipCity" Member="ShipCity" Storage="_ShipCity" DbType="NVarChar(15)" />
自定义DataContext类      
<Column Name="ShipRegion" Member="ShipRegion" Storage="_ShipRegion" DbType="NVarChar(15)" />
自定义DataContext类      
<Column Name="ShipPostalCode" Member="ShipPostalCode" Storage="_ShipPostalCode" DbType="NVarChar(10)" />
自定义DataContext类      
<Column Name="ShipCountry" Member="ShipCountry" Storage="_ShipCountry" DbType="NVarChar(15)" />
自定义DataContext类      
<Association Name="FK_Order_Details_Orders" Member="OrderDetails" Storage="_OrderDetails" ThisKey="OrderID" OtherKey="OrderID" DeleteRule="NO ACTION" />
自定义DataContext类      
<Association Name="FK_Orders_Customers" Member="Customers" Storage="_Customers" ThisKey="CustomerID" OtherKey="CustomerID" IsForeignKey="true" />
自定义DataContext类      
<Association Name="FK_Orders_Employees" Member="Employees" Storage="_Employees" ThisKey="EmployeeID" OtherKey="EmployeeID" IsForeignKey="true" />
自定义DataContext类      
<Association Name="FK_Orders_Shippers" Member="Shippers" Storage="_Shippers" ThisKey="ShipVia" OtherKey="ShipperID" IsForeignKey="true" />
自定义DataContext类    
</Type>
自定义DataContext类  
</Table>
自定义DataContext类
</Database>


      相关CS代码如下:

自定义DataContext类using System;
自定义DataContext类
using System.Collections.Generic;
自定义DataContext类
using System.Linq;
自定义DataContext类
using System.Text;
自定义DataContext类
using System.Data.Linq;
自定义DataContext类
using System.Data.Linq.Mapping;
自定义DataContext类
自定义DataContext类
namespace LinqConsole

相关文章: