05 2012 档案
摘要:LINQ有很多值得学习的地方,这里我们主要介绍LINQ to SQL Table,包括介绍LINQ的核心概念等方面。近日开始写有关于LINQ的文章,正巧写到Linq To SQL,由于探索LINQ的核心概念所致,脑中突现一个想法,"我是否可以将LINQ to SQL Table与LINQ to XML的XElement join起来?"理论上,在LINQ的设计概念中,这是可行的. 1 static void TestCrossLinq() 2 { 3 NORTHWND db = new NORTHWND("Data Source=.\\SQLEXPRESS; 4
阅读全文
摘要:本文向大家介绍Linq Library,可能好多人还不了解Linq Library,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。PDC 05上揭露了C# 3.0及Linq Project,什么是Linq呢?简单的说,Linq是一个语言层级的查询语法Library,她可以让我们以类SQL语法的方式来查询语言中的变数,例如阵列,Collections.以实例来说: 1 static void ObjectQuery() 2 { 3 var people = new List () 4 { 5 new Person { Age=12, Name="Bob" },
阅读全文
摘要:在向大家详细介绍LINQ to SQL语句之前,首先让大家了解下Select操作形式,分别为指定类型形式、过滤类型形式、shaped类型形式。这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作。所以先来学习LINQ to SQL语句,其它的都差不多了,那么就从Select说起吧,这个在编写程序中也最为常用。本篇
阅读全文
摘要:在向大家详细介绍LINQ to SQL语句之前,首先让大家了解下Select操作形式,分别为简单形式、匿名类型形式、带条件形式。这篇开始我们继续说LINQ to SQL语句,目的让大家从语句的角度了解LINQ,LINQ包括LINQ to Objects、LINQ to DataSets、LINQ to SQL、LINQ to Entities、LINQ to XML,但是相对来说LINQ to SQL在我们程序中使用最多,毕竟所有的数据都要在数据库运行着各种操作。所以先来学习LINQ to SQL语句,其它的都差不多了,那么就从Select说起吧,这个在编写程序中也最为常用。本篇详细说明一下S
阅读全文
摘要:本文向大家介绍Ling to sql更新实体,可能好多人还不了解Ling to sql更新实体,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。Ling to sql更新实体非常费劲!一般网上的例子中都是一下这样的。1 Customer cust = db.Customers.First(c => c.CustomerID == "ALFKI");2 cust.ContactTitle = "Vice President";3 db.SubmitChanges();但是,貌似在分层系统中,数据库操作会写到数据访问层,定义实体,抽象出接
阅读全文
摘要:在向大家详细介绍LINQ to SQL实体类之前,首先让大家了解下关联的属性说明,然后全面介绍LINQ to SQL实体类之间的关联。LINQ to SQL实体类之间的关联类似于数据库中表之间的关系。可以使用“关联编辑器” 对话框创建实体类之间的关联。使用“关联编辑器” 对话框创建关联时,必须选择父类和子类。父类是包含主键的实体类;子类是包含外键的实体类。例如,如果创建映射到 Northwind Customers 和 Orders 表的实体类,则 Customer 类将是父类,而 Order 类将是子类。将表从“服务器资源管理器” /“数据库资源管理器” 拖动到对象关系设计器(O/R 设计器
阅读全文
摘要:学习Linq时,经常会遇到Linq语句问题,这里将介绍Linq语句问题的解决方法。Navigation 类提供取得指定 Url 权限的功能,使用基本的Linq语句:public static int GetPermission(string Url){var item = Links.Where(p => p.Url == Url).ToList();if (item.Count > 0){return item[0].Permission;}return 0;}因为,在生成 html 的时候,考虑了如果按照相应的权限,一个分类下没有任何项目,则不显示这个分类,所以,取 Index
阅读全文
摘要:Linq有很多值得学习的地方,这里我们主要介绍Linq lambda表达式,包括介绍Expression tree等方面。Linq lambda表达式了解过C# 3.0的新特性的话应该知道,在C# 3.0中新引入了一个语法结构,称为lambda expression(Linq lambda表达式/匿名函数)。对此尚不了解的也可以到MSDN上看看,Linq lambda表达式。Linq lambda表达式既可以赋值给一个委托(delegate)类型,例如Action、Func等系列的内建委托类型;也可以赋值给Expression类型,例如以下Linq lambda表达式:x => -x当它
阅读全文
摘要:在向大家详细介绍创建LINQ Expression tree节点之前,首先让大家了解下节点该如何创建,然后全面介绍。创建LINQ Expression tree节点当了解LINQ Expression tree的概念后,就可以来讨论一下这棵树里面的节点该如何创建。LINQ Expression tree节点一般是通过System.Linq.Expression.Expression这个类上的工厂方法来创建的。包括以下的一些方法:Add : BinaryExpressionAddChecked : BinaryExpressionAnd : BinaryExpressionAndAlso : B
阅读全文
摘要:本文向大家介绍LINQ Expression tree,可能好多人还不了解LINQ Expression tree,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。LINQ Expression tree一棵LINQ Expession tree在创建后就不可再改变。假如某个程序接收一棵Expression tree为参数,然后仅仅是用于生成别的形式的代码(例如SQL语句),那么这个不可改变性不会有什么影响。但如果一个程序想对一棵Expression tree进行修改该怎么办呢?解决方法是从来源的Expression tree复制出一棵新的树,在复制过程中根据自己的需要选择是直接
阅读全文
摘要:学习LINQ时,经常会遇到LINQ查询语法问题,这里将介绍LINQ查询语法问题的解决方法。LINQ查询语法首先来看一个很简单的LINQ查询例子,查询一个int 数组中小于5的数字,并按照大小顺序排列:class Program{static void Main(string[] args){int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 };var m = from n in arr where n < 5 orderby n select n;foreach (var n in m){Console.WriteLine(n);}Con
阅读全文
摘要:Linq有很多值得学习的地方,这里我们主要介绍Linq调用数据访问服务,包括介绍Admin.cs代码修改成等方面。Linq调用数据访问服务Linq调用数据访问服务来进行留言、回复、删除留言等操作了。页面的代码不再贴了,我们把Default.cs修改成如下:public partial class _Default : System.Web.UI.Pag{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){SetBind();}}protected void btn_SendMessage_Click(obj
阅读全文
摘要:在向大家详细介绍Linq使用sqlmetal之前,首先让大家了解下外部映射文件,然后全面介绍Linq使用sqlmetal。外部映射文件我们可以Linq使用sqlmetal命令行工具来生成外部映射文件,使用方法如下:1、开始菜单 -》 VS2008 -》VS工具 -》VS2008命令行提示2、输入命令:D:\Program Files\Microsoft Visual Studio 9.0\VC>sqlmetal /conn:server=xxx; database=Northwind;uid=xxx;pwd=xxx /map:c:\northwind.map /code:c:\north
阅读全文
摘要:本文向大家介绍Linq实体关系,可能好多人还不了解Linq实体关系,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。Linq实体关系的定义比如我们的论坛分类表和论坛版块表之间就有关系,这种关系是1对多的关系。也就是说一个论坛分类可能有多个论坛版块,这是很常见的。定义Linq实体关系的优势在于,我们无须显式作连接操作就能处理关系表的条件。首先来看看分类表的定义:[Table(Name = "Categories")]public class BoardCategory{[Column(Name = "CategoryID", DbType =
阅读全文
摘要:在向大家详细介绍Linq实体继承使用之前,首先让大家了解下Linq to sql是否能根据TopicType识别派生类,然后全面介绍Linq实体继承使用。Linq实体继承使用定义好实体继承之后,我们就可以Linq实体继承使用了。先是自定义一个DataContext吧:public partial class BBSContext : DataContext{public Table<BoardCategory> BoardCategories;public Table<Board> Boards;public Table<Topic> Topics;publ
阅读全文
摘要:Linq有很多值得学习的地方,这里我们主要介绍Linq实体继承的定义,包括介绍Linq to sql支持实体的单表继承等方面。Linq实体继承的定义Linq to sql支持实体的单表继承,也就是基类和派生类都存储在一个表中。对于论坛来说,帖子有两种,一种是主题贴,一种是回复帖。那么,我们就先定义帖子基类:[Table(Name = "Topics")]public class Topic{[Column(Name = "TopicID", DbType = "int identity", IsPrimaryKey = true, I
阅读全文
摘要:本文向大家介绍Linq DataContext,可能好多人还不了解Linq DataContext,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。主键缓存Linq to sql对查询过的对象进行缓存,之后的如果只根据主键查询一条记录的话会直接从缓存中读取。比如下面的代码:Customer c1 = ctx.Customers.Single(customer => customer.CustomerID == "ANATR");c1.ContactName = "zhuye";Customer c2 = ctx.Customers.S
阅读全文
摘要:Linq DataLoadOptions限制Linq to sql对Linq DataLoadOptions的使用是有限制的,它只支持1个1对多的关系。一个顾客可能有多个订单,一个订单可能有多个详细订单:DataLoadOptions options = new DataLoadOptions();options.LoadWith<Customer>(c => c.Orders);options.LoadWith<Order>(o => o.Order_Details);ctx.LoadOptions = options;IEnumerable<Cus
阅读全文
摘要:学习Linq to object时,经常会遇到Linq to object问题,这里将介绍XX问题的解决方法。普通存储过程,首先在查询分析器运行下面的代码来创建一个存储过程:create proc sp_singleresultsetasset nocount onselect * from customers 然后打开IDE的服务器资源管理器,之前我们从表中拖动表到dbml设计视图,这次我们从存储过程中找到刚才创建的存储过程,然后拖动到设计视图。在方法面板中可以看到已经创建了一个sp_singleresultset的方法然后打开Northwind.designer.cs,可以找到下面的代码.
阅读全文
摘要:索引器:是C#引入的一个新型的类成员,它允许类或结构的实例按照与数组相同的方式进行索引。索引器类型于属性,它们的不同之处在于索引器的访问器采用参数。定义了索引器之后,就可以像访问数组一样,使用[]运算符访问类的成员。定义索引器的方式与定义属性有些类似,其一般形式如下:[修饰符] 数据类型 this <[数据类型 标识符]>{ get{//获得属性的代码} set{//设置属性的代码}}索引器概述:使用索引器可以用类似于数组的方式为对象建立索引。get 访问器返回值。 set 访问器分配...
阅读全文
摘要:以下信息都摘自MSDN,很好的解答了什么是元数据,元数据都包括哪些信息,这些信息在元数据中是如何组织管理的,以及,为什么说元数据是“自描述类型”的。元数据概述:元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Microsoft 中间语言 (MSIL) 并将其插入到该文件的另一部分中。在模块或程序集中定义和引用的每个类型和成员都将在元数据中进行说明。当执行代码时,运行库将元数据加载到内存中,并引用它来发现有关代码的类、成员、继承等信息。元数据以非特定
阅读全文
摘要:(1)初始化:在此阶段中,主要完成两项工作:一、初始化在传入Web请求生命周期内所需的设置;二、跟踪视图状态。首先,页面框架通过默认方式引发Init事件,并调用OnInit()方法,控件开发人员可以重写该方法为控件提供初始化逻辑。此后,页面框架将调用TrackViewState方法来跟踪视图状态。需要注意的是:多数情况下,Control基类提供的TrackViewState方法实现已经足够了。只有在控件定义了复杂属性时,开发人员才可能需要重写TrackViewState方法。(2)加载视图状态:此阶段的主要任务是检查ASP.NET服务器控件是否存在以及是否需要将其状态恢复到它在处理之前的请求结
阅读全文