linq

در نمایش آنلاین پاورپوینت، ممکن است بعضی علائم، اعداد و حتی فونت‌ها به خوبی نمایش داده نشود. این مشکل در فایل اصلی پاورپوینت وجود ندارد.






  • جزئیات
  • امتیاز و نظرات
  • متن پاورپوینت

امتیاز

درحال ارسال
امتیاز کاربر [0 رای]

نقد و بررسی ها

هیچ نظری برای این پاورپوینت نوشته نشده است.

اولین کسی باشید که نظری می نویسد “Language Integrated Query”

Language Integrated Query

اسلاید 1: Language Integrated Query

اسلاید 2: امروزه با وجود زبان هاي شي گرا که قابليت هاي مختلفی را در اختيار توسعه دهندگان قرار مي دهد، روش هاي مختلفي براي ارتباط با پايگاه داده هاي رابطه اي وجود دارد که فقدان روشي مشخص و آسان براي اتصال به انواع پايگاه داده هاي رابطه اي و به صورت کلي به هر نوع منبع داده اي که به صورت شئ نيست احساس مي شود شاید شما بگویید ADO.net میتواند این کار را انجام دهید اما برای این کار ADO.net به DataAdapter احتیاج دارد که باید پیاده سازی شود معرفی تکنولوژی جدیدی به نام LINQ توسط اقای هلسبرگ در کنفرانس توسعه دهندگان حرفه ای مایکروسافتLINQ مخفف Language Integrated Query که به اختصار لینک “link” تلفظ میشودLINQ يک راه حل اسان براي اتصال به هر نوع شی که IEnumerable پیاده سازی میکند منابع داده ای مثل حافظه های ناپایدار ، پایگاه داده های رابطه ای همانند SQL ، Oracel ، Access و حتی اسناد XML

اسلاید 3: LINQ یکسری دستوارت توانمند را ارائه میکند که بوسیله انها میتوان پرس و جوهای قوی همچون Join ها ، aggregation ها ، فیلترها ، مرتب سازی و . . . پشتیبانی میکند این دستورات را language level می نامند

اسلاید 4:

اسلاید 5: Language Additions

اسلاید 6: Anonymous typesهنگامی که برنامه نویس OO نیاز به یک کلاس داشته باشد ان را تعریف خواهد کرد اما اگر این کلاس فقط و فقط برای داده های خاصی یا حتی برای پروژه شما کاربرد داشته باشد تعریف این کلاس جالب به نظر نمیرسد اینجاست که نوع های بی نام به کمک برنامه نویس می اید و یک میانبر بسیار بزرگ در اختیار شما قرر میدهد برای تعریف نوع های بی نام از کلمه کلیدی var استفاده میشود در LINQ از نوع های بی نام زیاد استفاده میشود چون مشخص نیست نوع بازگشتی پرس و جو چه نوعی دارد var Sample = new { Id = 1, Name = HOSSEINY, Job = Student, Class = a };Console.Write({0}. {1} ( Job = {2} & Calss {3} )“,Id,Name,Job,Class);

اسلاید 7: class Sapmle { public int Id { get; set; } public string Name { get; set; } public string Job { get; set; } public char Class { get; set; } }class Example { Sapmle sample = new Sapmle { Id = 2, Name = ”x1, Job = Student, Class = c }; }Object Initializationامروزه در برنامه نویسی برای موجودیت ها از کلاس استفاده و به عنوان بسته های اطلاعاتی محسوب میشودکه در این راه مشکلاتی همچون تعریف سازنده های مختلف است با قابلیت های جدید سی شارپ این امکان به وجود امده که در هنگام ایجاد نمونه ای از کلاس ان را مقداردهی کنیم

اسلاید 8: توابع توسعه برای دسترسی سریع به توابع و ایجاد کارایی جدید به انواعی که کد پایه انها وجود ندارند به وجود امدند قابلیت اصلی پرس و جو لینک توسط توابع توسعه بدست امده است public static class TestNull { public static string StringNull( this string StrName) { return string.IsNullOrEmpty(StrName) ? string.Empty : StrName; } }Extension Methods

اسلاید 9:

اسلاید 10: عبارات لامبدا توابع ناشناخته ای هستند که میتوانند شامل قطعات کد و عبارات باشند . عبارات لامبدا این امکان را فراهم میکنند که توابعی ایجاد نموده و انها را به عنوان ارگومان ارسال نمایند براي تعريف يک تابع معمولی مي بايست پنج قسمت را به صورت صريح تعريف کرد Lambda Expressions

اسلاید 11: ولي براي تعريف عبارت لامبدا فقط دو مرحله از مراحل تعريف تابع را انجام مي دهيمExample

اسلاید 12: Query Expresionsدر هنگام تعامل با پايگاه هاي داده در واقع ما از دو زبان براي اين تعامل استفاده مي کنيم نخستين زبان ،زبان برنامه نويسي ما است مثلا سی شارپ و ديگري زباني که با پايگاه داده ارتباط برقرار مي کنيم براي اينکه بتوانيم با پايگاه داده ارتباط برقرار کنيم عبارت SQL را در قالب متن به سيستم ميامنجي پايگاه داده ارسال مي کنيم که تا زمان اجرا نشدن کد نميتوانيم از صحت اين عبارت مطلع شويم

اسلاید 13: قاعده کلی نوشتن پرس وجوQuery-expressionfrom-clause query-bodyquery-bodyfrom-let-where-clausesopt orderby-clauseopt select-or-group-clause querycontinuationoptfrom-clausefrom typeopt identifier in expression join-clausesoptjoin-clausesjoin-clausejoin-clauses join-clausejoin-clausejoin typeopt identifier in expression on expression equals expressionjoin typeopt identifier in expression on expression equals expressioninto identifier

اسلاید 14: from-let-where-clausefrom-clauselet-clausewhere-clausefrom-let-where-clausesfrom-let-where-clausefrom-let-where-clauses from-let-where-clausewhere-clausewhere boolean-expressionorderby-clauseorderby orderingsorderings , orderingselect-clauseselect expressiongroup-clausegroup expression by expressionfrom c in db.Customers where c.Country == “IR” && c.City == “Shiraz” orderby c.CustomerID select c;

اسلاید 15: Whereاين عملگر نتيجه پرس وجو را بر اساس آرگومان ورودي محدود مي کندList<Product> products = new List<Product>{new Product() { Name = product 1, UnitPrice = 10 },new Product() { Name = product 2, UnitPrice = 20 },new Product() { Name = product 3, UnitPrice = 30 }};IEnumerable<Product> retProducts = from p in productswhere p.UnitPrice > 10select p;IEnumerable<Product> retProducts = products.Where(p => p.UnitPrice > 10);

اسلاید 16: Selectاين عملگر از روي آرگومان هاي ورودي ، شئ جديد و قابل شمارشي ايجاد کرده و آن را بر مي گرداندList<Customer> customers = new List<Customer>(){ new Customer() {Name =Ali , Family = “reza , CustomerID =0 }, new Customer() {Name =Ali , Family = “hassani , CustomerID =1 }, new Customer() {Name =“Kazem , Family = “kazemi , CustomerID =2 }};var query = from c in customersselect c;این عملگر همانند select در زبان sql است

اسلاید 17: اين عملگر همانند INNER Join در پايگاه داده هاي رابطه اي عمل مي کند يعني دو مجموعه را بر اساس کليدهاي که در هر دو مرتبط هستند و به عنوان آرگومان به آن ارسال مي گرددترکيب ميکندList<Customer> customers = new List<Customer>(){ new Customer() {Name =Ali , Family = “reza , CustomerID =0 }, new Customer() {Name =Ali , Family = “hassani , CustomerID =1 }, new Customer() {Name =“Kazem , Family = “kazemi , CustomerID =2 }};List<Order> orders = new List<Order>() { new Order(){CustomerID = 0, OrderID = 1,OrderDate = new DateTime(2010,1,1)} , new Order(){CustomerID = 1, OrderID = 2,OrderDate = new DateTime(2011,1,1)} }; var query = from c in customers join o in orders on c.CustomerID equals o.CustomerID select new {FullName = c.Name + + c.Family , c.CustomerID , o.OrderDate };Join

اسلاید 18: Group Byبوسيله اين عملگر مي توان عناصري از مجموعه نتيجه را بوسيله يک شرط خاص دسته بندي کرد است SQL در Group By دقيقا مشابه LINQ در Group by عملکرد عملگر دسته بنديvar query = from Cs in Citysgroup by Cs.Cityselect Cs;Order Byاين عملگر عناصر يک مجموعه را بر اساس يک کليد به صورت صعودي مرتب مي کندvar query = from c in Citysorderby c.Nameselect c;

اسلاید 19: تا اینجا با منطق و بخش ساده و کوچکی از LINQ اشنا شدیم حال زمان ان فرا رسیده تا نحوه ارتباط LINQ با پایگاه داده ای همچون SQL بیاموزیمLINQ to SQL

اسلاید 20:

اسلاید 21:

اسلاید 22:

اسلاید 23:

اسلاید 24: SampleDataContext sample = new SampleDataContext(); var Quary = from result in sample.Customers select new { result.CustomerID, result.ContactName, result.City, result.Country };dataGridView.DataSource = Quary;Show AllSampleDataContext sample = new SampleDataContext(); Customer customer = new Customer(); customer.CustomerID = _ID.Text; customer.ContactName = _Name.Text; customer.City = _City.Text; customer.Country = _Country.Text; sample.Customers.InsertOnSubmit(customer); sample.SubmitChanges();INSERT

اسلاید 25: SampleDataContext sample = new SampleDataContext(); Customer customer = new Customer(); string customerId = dataGridView1[0, dataGridView1.CurrentRow.Index].Value.ToString(); var Quary = (from cust in sample.Customers where cust.CustomerID == customerId select cust).Single(); sample.Customers.DeleteOnSubmit(Quary); sample.SubmitChanges();Delete

اسلاید 26: پایان

10,000 تومان

خرید پاورپوینت توسط کلیه کارت‌های شتاب امکان‌پذیر است و بلافاصله پس از خرید، لینک دانلود پاورپوینت در اختیار شما قرار خواهد گرفت.

در صورت عدم رضایت سفارش برگشت و وجه به حساب شما برگشت داده خواهد شد.

در صورت نیاز با شماره 09353405883 در واتساپ، ایتا و روبیکا تماس بگیرید.

افزودن به سبد خرید