网站服务器维护 价目表,扶贫办网站建设,关于美食html网页设计实例代码,福田企业网站优化有用吗从本节开始#xff0c;笔者将会和大家一起开始体验dlinq了。前面我们准备了数据库#xff0c;也对数据库之间的关系做了初步的了解。有了数据库之后#xff0c;数据和对象是一个什么样的关系呢#xff1f;从dlinq的设计来看#xff0c;它主要是为了解决data!objects 的问题…从本节开始笔者将会和大家一起开始体验dlinq了。前面我们准备了数据库也对数据库之间的关系做了初步的了解。有了数据库之后数据和对象是一个什么样的关系呢从dlinq的设计来看它主要是为了解决data!objects 的问题而产生的。那么现在有了dlinq后数据和对象之间就可以有一个一一对应的关系了。我们既可以根据数据库生成这种影射的代码也可以根据影射代码生成数据库。简单的说数据库和影射代码实现了相互转化。linq preview提供了一个很好的工具可以帮我们实现从数据库到代码的影射。它就是sqlmetal。beta2的sqlmetal在C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin目录下或C:\WINDOWS\Microsoft.NET\Framework\v3.5目录打开cmd运行sqlmetal程序。会出现下面的提示。运行如下的命令。 sqlmetal /server:myserver /database:northwind /namespace:nwind /code:nwind.cs/language:csharp你可以根据northwind数据库生成一个nwind.cs文件。你会在 linq priview的bin目录发现它^_^ 。这里的参数的含义也非常的明确笔者也不在多赘述。在这里我想和大家简要介绍下这个影射文件nwind.cs因为这个是程序自动生成的我们暂时最好不要改在后面的进阶中我将为大家详细阐述此文件中code的含义以及实现inheritance我们先来看Northwind 类的定义。 public partial class Northwind : DataContext {首先partial关键词是C.中出现的本文不是讲解C.的相关知识请参阅相关文献。Northwind 的名字是根据你数据库的名字定义的我们发现它必须从DataContext 类继承才可以获得dlinq的支持。再往下看 public TableOrder Orders; public TableProduct Products; public TableOrderDetail OrderDetails;Table类是dlinq中定义的这里他用了一个范性的概念类似于C中的模板。但C#和C还是有区别C的泛型模板类似替换只是编译时用实际类型进行替换因此对任何类型都可以但是C#的泛型是在虚拟机级别上的实现因此在编译时会进行类型检查引。Order, Product和OrderDetail等都是sqlmetal程序根据数据库里对应的表自动产生的类。也就是class和table是一一对应的。而这样也恰恰实现了object和data的对等。让我们去看看Order的定义吧。我这里只贴出部分。 只简单介绍几个点更加详细内容我会在进介阶段解释包括inheritance。 [Table(Name Orders)] public partial class Order : System.Data.DLinq.INotifyPropertyChanging, System.ComponentModel.INotifyPropertyChanged { private int _OrderID; private string _CustomerID; private System.Nullableint _EmployeeID;………… public Order() { this._OrderID default(int); this._OrderDetails new EntitySetOrderDetail(new NotificationOrderDetail(this.attach_OrderDetails), new NotificationOrderDetail(this.detach_OrderDetails)); this._Customer default(EntityRefCustomer); this._Employee default(EntityRefEmployee); this._Shipper default(EntityRefShipper); } [Column(Storage _OrderID, DBType Int NOT NULL IDENTITY, IsPrimaryKey true, IsDBGenerated true)] public int OrderID { get { return this._OrderID; } }} 因为影射文件是自动产生的并不需要我们自己去手动制造节约了我们大量劳动力。在这里我们可以看到Order 类必须从两个接口继承而且还要去实现接口里定义的方法。它还定义了一些私有的变量这些似乎和数据表里字段没有关系。其实它在Property里描述着呢。dlinq会为每个数据表的字段定义一个对应Property然后会在其上加上attribute如[Column(Storage _OrderID, DBType Int NOT NULL IDENTITY, IsPrimaryKey true, IsDBGenerated true)]用来描述该Property对应数据表那个字段Storage 是什么类型DBType 是否主键IsPrimaryKey 是否自动增IsDBGenerated 等。在这里我们暂时先不要对这个文件进行修改等你对它比较熟悉了之后你就可以用它自己定义继承比如product下面还有好多种product呢。我将会在进介中介绍。有了影射文件后你是不是跃跃欲试急于想创建一个自己的linq project了呢在你安装了linq preview后选择file-new-Project. 你会发现比平时多了个选项。如图所示。选择linq preview后选择一个linq console application添上名字让我们立马开始linq之旅吧。创建好工程后将你自己前面产生nwind.cs文件加入到工程中在program.cs中的键入如下代码。using System;using System.Collections.Generic;using System.Text;using System.Query;using System.Xml.XLinq;using System.Data.DLinq;using System.Data;using System.Data.SqlClient;using nwind;class Program{ static void Main(string[] args) { Northwind db new Northwind(Your Connection String); var q from c in db.Customers select c; foreach (var c in q) { Console.WriteLine(c.ContactName); } }} 运行哈哈你的第一个linq preview的工程跑起来了开心伐。呵呵好从下章开始笔者将着重给大家讲解dlinq的语法。从下章开始本系列将更名为入门系列呵呵本来就没有书可读吗。同时将发布在首页精华区关注dlinq的朋友注意接收哦。转载于:https://www.cnblogs.com/126/archive/2006/09/06/492332.html