donqiang的博客

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

LINQ工具介绍:LINQPad

==

学习LINQ工具:LINQPad

LINQPad支持C# 3.0 和 Framework 3.5的全部功能:
◆LINQ to SQL
◆LINQ to Objects
◆LINQ to XML

LINQPad 也是一个很好的学习LINQ的工具,包含《C# 3.0 in a Nutshell》一书中200个示例,可以使用LINQPad感受LINQ的超酷功能和函数编程。

LINQPad 是完全免费的,无需安装,下载之后直接可以运行,只有2.12 MB大小。LINQPad 需要先安装.NET Framework 3.5,支持 SQL Express、SQL 2000、 SQL 2005和SQL 2008的有限功能。

LINQPad可以使用LINQ交互查询SQL数据库,无需再要SQL Management Studio了。

产品主页:http://www.linqpad.net/

LINQPad提供了多种执行模式:

C# (或 VB)表达式

可执行单条C#或VB的LINQ表达式,并在结果窗格中显示最终的对象

C# (或 VB)语句

可执行多条C#或VB的LINQ表达式,LINQPad有Dump扩展方法,在执行期间发送对象和文本到结果窗格

C# (或 VB)程序

在Main()函数中编写要执行的代码,可在LINQPad编辑器中定义其他类型和方法进行测试。

SQL

使用SQL支持特定数据查询

记住LINQPad可执行任意C#或VB.NET代码非常重要,并不仅仅是LINQ表达式。这也意味着对于要进行简单测试的任何简短代码,LINQPad非常有用,例如:棘手的数字格式字符串或者匹配正则表达式。

LINQPad含有用于显示LINQ细微差别和功能的多个LINQ示例表达式,包括初学者示例和更高级的概念,如:延迟执行和投影。LINQPad还有多用途分析功能,即显示结果的多种选择:
◆默认结果视图 由语句返回的对象和文本的简单图形
◆Lambda视图 LINQ表达式转换为可用的Lambda表达式
◆SQL视图 LINQ表达式转换为可用的SQL
◆IL视图 针对代码生成的微软中间语言

LINQPad允许用户引用自定义程序集和导入自定义命名空间来进行扩展。通过这种扩展可以支持LINQ to Entities。

除了是学习和测试工具以外,LINQPad 针对SQL数据库执行特定查询方面越来越受欢迎。

输出到结果视图的简单LINQ to SQL表达式,如下所示:

输出到结果视图的简单LINQ to SQL表达式

输出到Lambda视图的简单LINQ to SQL表达式,如下所示:

输出到Lambda视图的简单LINQ to SQL表达式

输出到SQL视图的简单LINQ to SQL表达式,如下所示:

输出到SQL视图的简单LINQ to SQL表达式

LINQPad免费并不断更新。智能感知仅在许可证收费($19)版本中可用。 使用LINQPad无需Visual Studio ,但需要安装.NET Framework 3.5。

以上就是LINQ工具:LINQPad的介绍。

本文参考资料:Infoq:《用LINQPad精通LINQ》;YJingLee's Blog:《学习LINQ工具:LINQPad 》。

===

介绍一款很有创意的工具LINQPad
亮点:
可以使用LINQ来直接查询数据库,当然也可以查询实体或者XML。从现在,开始慢慢练习用LINQ思考!
如果你经常使用 SQL Server 查询分析器,又希望了解 LINQ,用上这个工具,相信过不了两周,就会变得非常习惯于 LINQ 的思考方式。
运行环境:
A) 安装 .NET Framework 3.5 (minimal impact) or
B) 安装l Visual C# 2008 Express or
C) 安装 Visual Studio 2008
有了.NET 3.5 的支持,LINQPad 可以独自运行(可以直接在编辑界面执行C#语句或者数据库SQL查询)
演示:
1) 查询实体

2) 查询数据库

可以切换到SQL面板查询最终执行的SQL语句

3) 查询 XML

怎么样,有没有想试一下的冲动,把LINQPad下载到你的爱机吧
LoongTsui 按:
软件实现主要使用的技术代码(动态代码执行):

1. public bool Compile(IEnumerable<string> references, string source, string outputFile)
2. {
3. // ... 省略部分
4. Dictionary<string, string> dictionary = new Dictionary<string, string>();
5. dictionary.Add("CompilerVersion", "v3.5");
6. CSharpCodeProvider provider = new CSharpCodeProvider(dictionary);
7. CompilerParameters options = new CompilerParameters(Enumerable.ToArray<string>(references), outputFile, true);
8. options.TreatWarningsAsErrors = false;
9. options.GenerateExecutable = false;
10. options.IncludeDebugInformation = true;
11. CompilerResults results = provider.CompileAssemblyFromSource(options, new string[] { source });
12. // ... 省略部分:定位编译错误

关于此特别补充了一篇,见:
动态执行C#代码

posted on 2011-03-09 09:01  donqiang  阅读(1489)  评论(0编辑  收藏  举报