我使用LINQPad在我bulding的应用程序创建LINQ查询。

我注意到,在所下载的 LINQ在操作样本,例如例如4.04,智能感知显示类“书籍”,但我看不出有任何的引用或“”在LINQPad工具陈述,这里是示例:

List<Book> books = new List<Book>() {
  new Book { Title="LINQ in Action" },
  new Book { Title="LINQ for Fun" },
  new Book { Title="Extreme LINQ" } };

var titles =
  books
    .Where(book => book.Title.Contains("Action"))
    .Select(book => book.Title);

titles.Dump();

在 “LinqBooks.Common,业务对象,请 Book.linq ” 是类似乎被定义:

public class Book
{
  public IEnumerable<Author> Authors {get; set;}
  public String Isbn {get; set;}
  public String Notes {get; set;}
  public Int32 PageCount {get; set;}
  public Decimal Price {get; set;}
  public DateTime PublicationDate {get; set;}
  public Publisher Publisher {get; set;}
  public IEnumerable<Review> Reviews {get; set;}
  public Subject Subject {get; set;}
  public String Summary {get; set;}
  public String Title {get; set;}
  public String Test {get; set;}

  public override String ToString()
  {
    return Title;
  }
}

但这是如何工作的,这样我可以在我的课复制和使用LINQPad来快速构建LINQ语句,我可以再复制回我的应用程序?

有帮助吗?

解决方案

如果你置身于LINQPad代码编辑器中单击并选择高级查询属性,有两个对话框:附加的参考文献和其他命名空间的进口

1)在其他参考资料下,选择添加,然后点击浏览并浏览到您的自定义组件。

2)然后,在其他命名空间进口下,键入的命名空间要从该组件导入。

其他提示

LINQPad允许你通过高级查询属性对话框可通过按下打开引用自定义组件 F4

实际上,如果你看LINQ文件如Book.linq与记事本,你会看到该文件是和XML的混合物在结束代码的一个片段:

<Query Kind="Statements"> <!-- kind: Program, ... --->
  <Connection>...</Connection> <!-- Optional, if you have connection to db -->
  <Reference>[path]\[library]</Reference> <!-- references to your customized libraries -->
  <Reference>RuntimeDirectory&gt;System.Data.dll</Reference> <!-- example to System.Data.dll -->
  <Namespace>System.Data</Namespace> <!-- here are nodes for namespaces... -->
  <Namespace>MyLibrary.Common</Namespace>
</Query>

var conn = "Data Source=...";
....

为了话,你可能会发现约LINQPad怎么搞得到所有的信息,例如LINQ的文件更详细的信息,生成动态组装和运行它在内部得到的结果返回到它的UI。

顺便说一句,我写了一篇博客,昨晚这个工具,我其结构的理解:的 LINQPad一个.net代码段IDE

爱德华,我们行动样品中构建LINQ时所使用的一些策略。在数据库的章节中,我们往往只是依靠LINQPad的基础上,数据库表自动生成的类能力。

在这种情况下,你在这里引用(4.04),我们确实添加了参考使用F4预编译的类库。我们利用这个战略的情况下LinqPad产生从由Visual Studio生成的不同类别,从而造成背景下的行为不同于你所期望的,特别是关于变更跟踪。

在其他情况下,我们添加了一个嵌套类直列与样品的其余部分,并用于在代码编辑器“程序”选项。见例子6.02。在这种情况下,我们实际上是嵌入生成LinqPad生成的DataContext类里面的书类。我们也采用了这种策略时,我们希望我们的别名列名,因为LinqPad创建自动生成的类不会轻易让我们的别名工具内的那些列。

在几个样品中,特别是当我们展示自定义扩展方法,我们不得不做迫使生成的上下文类来完成(添加aparently匹配的结束}或末级),然后开始一个新的类别的另一目的,但忽略它的收盘部支柱/结束类。可以下载的样品中看到这个例子2.16英寸

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top