كيف LINQPad الإشارة الطبقات الأخرى ، مثلكتب في LINQ في العمل عينات

StackOverflow https://stackoverflow.com/questions/1222009

سؤال

أنا باستخدام LINQPad إلى إنشاء استعلامات 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.المشتركة, عمل الأشياء ، الكتاب.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 الملف مثل الكتاب.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=...";
....

في ترتيب الكلمات ، قد تجد المزيد من المعلومات التفصيلية من المثال linq ملفات عن كيفية LINQPad يحصل على كل المعلومات ، يبني ديناميكية الجمعية و يعمل داخليا للحصول على النتائج مرة أخرى إلى واجهة المستخدم.

بالمناسبة كتبت مدونة الليلة الماضية عن هذه الأداة و فهمي هيكل: LINQPad أ .صافي مقتطف شفرة IDE.

إدوارد استخدمنا عددا من الاستراتيجيات عند بناء LINQ في العمل العينات.في قاعدة البيانات الفصول ، أننا كثيرا ما تعتمد على LINQPad على autogenerate فئات استنادا إلى جداول قاعدة البيانات.

في حالة الإشارة هنا (4.04) فعلنا إضافة الإشارة إلى ما قبل تجميع مكتبة الفئة باستخدام F4.لقد استخدمت هذه الاستراتيجية في الحالات التي يكون فيها LinqPad إنشاء فئات مختلفة من تلك التي تم إنشاؤها بواسطة Visual Studio وبالتالي تسبب في سياق أن تتصرف بشكل مختلف مما كنت تتوقع, لا سيما في ما يخص تغيير تتبع.

في حالات أخرى, أضفنا فئة متداخلة مضمنة مع بقية العينة المستخدمة "البرنامج" الخيار في محرر التعليمات البرمجية.انظر المثال 6.02.في هذه الحالة, نحن في الواقع الطمر الكتب فئة داخل ولدت DataContext الفئة التي LinqPad يولد.ونحن أيضا استخدام هذه الاستراتيجية عندما أردنا أن الاسم المستعار لدينا أسماء الأعمدة لأن السيارات-إنشاء الطبقات التي LinqPad يخلق لا بسهولة دعونا مستعار تلك الأعمدة داخل الأداة.

في بضع عينات ، وخاصة ما نحن فيه مما يدل العرف طرق الإرشاد ، كان علينا أن تفعل خدعة أخرى من إجبار ولدت فئة السياق إلى النهاية (إضافة aparently لا مثيل لها إنهاء } أو نهاية الفصل) ثم بدأت فئة جديدة ، ولكن حذف انها إغلاق نهاية هدفين/في نهاية الدرجة.يمكنك ان ترى في هذا المثال 2.16 في تحميلها العينات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top