摘要: 在上面一篇文章Linq To Sql进阶系列(六)中,我们提到了使用object的动态查询。本文在上文的基础上,再做更加深入的引申。同时修正上文中一些不妥的地方。1, object的动态查询续首先要做的事情,就是将Find的函数改成扩展方法。扩展方法只能放在静态类里,而且它的第一个参数必须带this关键字。在上文中,作者留下了一个迷题。当需要or条件时,又该如何做呢?本文也将这个问题给出回答。但是... 阅读全文
posted @ 2009-04-02 18:08 o岸上的鱼o 阅读(272) 评论(0) 推荐(0)
摘要: 动态的生成sql语句,根据不同的条件构造不同的where字句,是拼接sql 字符串的好处。而Linq的推出,是为了弥补编程中的 Data != Object 的问题。我们又该如何实现用object的动态查询呢?1,用object的查询是什么?我们可以简单的举这么一个例子。我们到公安局查找一个人。首先,我们会给出他的一些特征,比如,身高多少,年龄多少,性别,民族等。那么,我们把这个人的一些特征输入电... 阅读全文
posted @ 2009-04-02 18:08 o岸上的鱼o 阅读(168) 评论(0) 推荐(0)
摘要: Store Procedure,存储过程。也是被别人写过的东西。我习惯性先看别人都写了点啥,然后才开始想看看自己还要写点啥。那就先谈谈它与udf的区别吧。在Linq To Sql进阶系列(四)User Define Function篇 中,我们提到了两者的差别。比如Store Procedure支持多个rowset的,而udf不行。他们还有一些其他的差别。Store Procedure只能返回整型... 阅读全文
posted @ 2009-04-02 18:07 o岸上的鱼o 阅读(221) 评论(0) 推荐(0)
摘要: User Define Function, 用户自定义函数,简称UDF. 关于sql server中的udf,请大家参考http://msdn.microsoft.com/msdnmag/issues/03/11/DataPoints/一文。本文主要阐述,在Linq To Sql中,如何使用UDF. 1,UDF 简介UDF可以分为两中类型。一种为Scalar Valued Function,简称为... 阅读全文
posted @ 2009-04-02 18:07 o岸上的鱼o 阅读(251) 评论(0) 推荐(0)
摘要: CUD就是Create, Update, Delete。在别人都写过了后,还有什么是新鲜的呢?1,CreateDatabase Northwind db = new Northwind("You connection string"); //注意database项,起一个不存在的数据库名称 db.Log = Console.Out; if (!db.DatabaseExists()) //如果,数... 阅读全文
posted @ 2009-04-02 18:06 o岸上的鱼o 阅读(197) 评论(0) 推荐(0)
摘要: 在Linq To Sql进阶系列(一) 一文中,我们谈到了数据库中的两种基本关系1:M 与1:1. 而现实世界中,还有一种M:M 的关系。比如,一个老师可以有多个学生,而一个学生也可以有多个老师。老师和学生的关系就是多对多的关系。这些关系在数据库中是如何反映的呢?在C#3.0入门系列(十)-之Join操作一文中,我们提到了M:M 的关系中的join操作。哦,原来,M:M 的关系在数据库中,依然是通... 阅读全文
posted @ 2009-04-02 18:06 o岸上的鱼o 阅读(199) 评论(0) 推荐(0)
摘要: 本系列,或多或少,直接或间接依赖入门系列知识。但,依然追求独立成章。因本文作者水平有限,文中错误难免,敬请读者指出并谅解。本系列将会和入门并存。案例某君被邀为一超市设计数据库,用来存储数据。该君根据该超市中实际出现的对象,设计了Customer, Employee,Order, Product等表,用来保存相应的客户,员工,订单,货品等。太好了,该君很有oo的思想吗。如果,你被要求用类及对象,来描... 阅读全文
posted @ 2009-04-02 18:06 o岸上的鱼o 阅读(349) 评论(0) 推荐(0)
摘要: Lambda表达式是由匿名方法演化而来的更加高级的形式。关于匿名方法,请参阅http://msdn.microsoft.com/msdnmag/issues/04/05/C20/。关于Lambda表达式的演化,请参阅http://msdn.microsoft.com/msdnmag/issues/07/06/csharp30/default.aspx?loc=zh。英文原版为http://msdn... 阅读全文
posted @ 2009-04-02 18:04 o岸上的鱼o 阅读(245) 评论(0) 推荐(0)
摘要: 有这么一个例子,寻找一个表中的某个字段介于某个给定的集合该怎么办?Sql写起来很简单,比如:Select * from table where id in (2,3, 4, 5)。 就是寻找id字段为这个给定的集合(2,3, 4, 5)内的值。那Linq to Sql该怎么做呢?一个字,简单。In Operator比如,我们想要查找,"AROUT", "BOLID" 和"FISSA" 这三个客户的... 阅读全文
posted @ 2009-04-02 18:03 o岸上的鱼o 阅读(187) 评论(0) 推荐(0)
摘要: 本节讲join操作。我们知道,T-sql中,有三种最基本的join,inner join, left join, 和right join。 而dlinq并不支持right join。道理很简单,right join以right表为基础,left表中没有对应记录的,将以null值填充。而dlinq以left表做为主表创建对象。如果一个对象为null,你如何获取它的其他的属性呢?在C# 3.0入门系列... 阅读全文
posted @ 2009-04-02 18:03 o岸上的鱼o 阅读(198) 评论(0) 推荐(0)
摘要: 有朋友反馈说我提供的sample不能编译。大概是版本的问题,可以到http://msdn2.microsoft.com/en-us/bb330936.aspx下载for beta1的版本。本节接着讲groupby。上一节,我们讲了如何理解groupby返回的结果。本节会延这个思路阐述下去。先来看下面的例子GroupBy操作中Select的匿名类varq=frompindb.Productsgrou... 阅读全文
posted @ 2009-04-02 18:02 o岸上的鱼o 阅读(165) 评论(0) 推荐(0)
摘要: 换一种写作风格。本节讲groupby操作。在所有的Linq To Sql操作中,GroupBy是最难理解的一个。因为,这里和Sql的出入较大。而Group真的就能返回n多组。打开vs,新建一工程,加入System.Data.Linq.dll的引用。把northwind数据库做个映射,添加到工程里。创建一Northwind类的对象。在这里呢,我们要做分组统计,我们要先明白什么是分组。在我们开始设计p... 阅读全文
posted @ 2009-04-02 18:02 o岸上的鱼o 阅读(176) 评论(0) 推荐(0)
摘要: 不得不再次给关注dlinq的朋友道歉了。好久都没有更新blog了。因为工作的变动,还要赶期限,没有时间关注这里了。先发布一则消息。Orcas Beta1, 这个才是beta1,可以到http://www.microsoft.com/downloads/details.aspx?FamilyID=f10fb5df-e369-4db4-b9a7-845dbf793368&DisplayLang... 阅读全文
posted @ 2009-04-02 18:01 o岸上的鱼o 阅读(289) 评论(0) 推荐(0)
摘要: 本节讲orderby操作.我突然在想这么一个问题,读者会T-SQL吗?要是不知道,那我写的是不是太简单了呢?做个调查哦,不知道的举手.OrderBy操作简单的,按雇用日期排序,默认为升序varq=fromeindb.Employeesorderbye.HireDateselecte;带where条件的,shipcity为london的。varq=fromoindb.Orderswhereo.Shi... 阅读全文
posted @ 2009-04-02 18:00 o岸上的鱼o 阅读(374) 评论(0) 推荐(0)
摘要: 从本节开始,本文正式更名为C#3.0入门系列。先发布一则消息,VS2007 Beta版本已经发布咯,下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=1FF0B35D-0C4A-40B4-915A-5331E11C39E6&displaylang=en大家快去下载呀,我也好和大家一起体验该版本最新功能呀。dlinq也... 阅读全文
posted @ 2009-04-02 17:59 o岸上的鱼o 阅读(184) 评论(0) 推荐(0)
摘要: 先给关注dlinq的朋友们道歉,最近工作实在忙,没有时间来写blog。从本节开始,我们讲dlinq语法咯。我们先从select子句讲起。看下面的例子。varq=fromcindb.Customersselectc.ContactName;这是一个最简单的dlinq查询语句,查询得到联系人的名字。在这里,我需要提醒下大家的是,像这个语句只是个声明,dlinq并没有真正把数据取出来,只有当你需要该数据... 阅读全文
posted @ 2009-04-02 17:58 o岸上的鱼o 阅读(164) 评论(0) 推荐(0)
摘要: 从本节开始,笔者将会和大家一起开始体验dlinq了。前面我们准备了数据库,也对数据库之间的关系做了初步的了解。有了数据库之后,数据和对象是一个什么样的关系呢?从dlinq的设计来看,它主要是为了解决data!=objects 的问题而产生的。那么,现在,有了dlinq后数据和对象之间就可以有一个一一对应的关系了。我们既可以根据数据库生成这种影射的代码,也可以根据影射代码生成数据库。简单的说,数据库... 阅读全文
posted @ 2009-04-02 17:57 o岸上的鱼o 阅读(201) 评论(0) 推荐(0)
摘要: 在第一篇中,我已经和大家简单介绍了linq。也和大家提起linq是C# 3.0里的一个特性。不过,你去装linq priview时,你会发现,它提供了许多vb的linq代码。从现在的情况看,linq会被移植到.net framework下。在本篇中,笔者将开始更加详细的介绍dlinq。同时,也会介绍很实用的技巧和方法。在这之前,你需要安装s2008 beta2版本。可以到http://msdn2.... 阅读全文
posted @ 2009-04-02 17:55 o岸上的鱼o 阅读(280) 评论(0) 推荐(0)
摘要: 谈到dlinq,就不得不先说linq。让我们先看看什么是linq。linq是Language Integrated Query的缩写。那么事实上dlinq就是Database Language Integrated Query的缩写。linq和dlinq最大的区别就在与linq是对内存进行操作,而dlinq的操作对象为数据库。我们先来看一个linq的例子。在这之前,你需要安装s2008 beta2... 阅读全文
posted @ 2009-04-02 17:54 o岸上的鱼o 阅读(235) 评论(0) 推荐(0)