LINQ Dynamic Query Library
2009-01-22 10:48
344 查看
LINQ 是.NET Framework 3.5中新增的功能。它是一个集成到语言中的特性。有了它,我们可以很容易的对数据进行查询。对于一般人来说,关注较多的是LINQ-SQL,它是.NET中比较好用的一个ORM tool。
好了,进入正题。平常我们在写LINQ查询的时候,使用的是强类型,也就是说,在编译时LINQ就可以为我们来检查类型是否匹配,这样可以避免很多runtime时类型不匹配的危险。也正因为如此,我们在写LINQ查询语句时并没有写SQL语句那样"方便"(代价就是危险),尤其当我们有许多动态filters的时候,写在LINQ语句中更是麻烦。
现在我们可以使用Dynamic Query Library来解决这个问题。它定义了一些扩展方法使得我们可以直接用string expression来达到condtion-Where以及sort-Orderby的目的(以前都是需要用LINQ expression)。如:
Code
DataClasses1DataContext ctx = new DataClasses1DataContext();
var query = ctx.tests.Where("id>@0 and id<@1", 5, 10).Select("new(id)");
这样是不是更加方便了呢 :)
LINQ Dynamic Query Library用法如下:
1) 下载Library
VB.NET edition
C# edition
2) 以C#为例,将DynamicQuery文件夹中的Dynamic源文件copy至你的项目中。
3) 添加"using System.Linq.Dynamic;"命名空间,这样你就可以使用它了。
Have a nice day!
好了,进入正题。平常我们在写LINQ查询的时候,使用的是强类型,也就是说,在编译时LINQ就可以为我们来检查类型是否匹配,这样可以避免很多runtime时类型不匹配的危险。也正因为如此,我们在写LINQ查询语句时并没有写SQL语句那样"方便"(代价就是危险),尤其当我们有许多动态filters的时候,写在LINQ语句中更是麻烦。
现在我们可以使用Dynamic Query Library来解决这个问题。它定义了一些扩展方法使得我们可以直接用string expression来达到condtion-Where以及sort-Orderby的目的(以前都是需要用LINQ expression)。如:
Code
DataClasses1DataContext ctx = new DataClasses1DataContext();
var query = ctx.tests.Where("id>@0 and id<@1", 5, 10).Select("new(id)");
这样是不是更加方便了呢 :)
LINQ Dynamic Query Library用法如下:
1) 下载Library
VB.NET edition
C# edition
2) 以C#为例,将DynamicQuery文件夹中的Dynamic源文件copy至你的项目中。
3) 添加"using System.Linq.Dynamic;"命名空间,这样你就可以使用它了。
Have a nice day!
相关文章推荐
- LINQ Dynamic Microsoft Query Library
- Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library)
- Dynamic Linq Query 简单API
- DynamicQueryable基于Linq的动态查询
- C#.NET 动态Linq DynamicQueryable
- Warning: PHP Startup: Unable to load dynamic library 'php/ext\php_pgsql.dll' - %1 不是有效的 Win32 应用程序
- Bode's Online Judge Core Engine (Judge Engine Dynamic Link Library) 在线评测系统核心引擎
- Converting a LINQ to Entities query to a DataTable
- Dynamic Link Library DLL
- 如何解决PHP startup: Unable to load dynamic library的错误
- LINQ,.NET语言级集成查询能力(.NET Language Integrated Query)
- LINQ Group Query
- Type Relationships in Query Operations (LINQ) (查询操作中的类关系)
- DLL(Dynamic Linkable Library)
- 动态连接库(DLL- Dynamic Link Library)
- DLL(Dynamic Link Library),动态链接库。
- Dynamic LINQ - 动态LINQ
- [转]LINQ,语言级集成查询(Language INtegrated Query)
- Linq to SQL Dynamic 动态查询
- 【翻译】Pro LINQ Language Integrated Query in C# 2008 -- 第三章 (LINQ TO Objects) 第一节