عنوان:

‫lambda expression در Vb.net


نویسنده: میثم ثوامری
تاریخ: ۱۳۹۱/۰۵/۱۹ ۱۱:۱۱
آدرس: www.dntips.ir
با vb.net تو پروژه vs2012 خیلی بیرحمانه رفتار شد. خیلی از برنامه نویسان هنوز فکر میکنن vb.net زبان آموزشه نه برنامه نویسی. حالا با اومدن MVC, EF4, ParallelPrograming, Async و غیره موضوع بدتر شده و  در اکثر وبسایتها معلولا بحث و sampleها با زبان #C ارائه میشه. اکثر Pattern که نوشته میشه به زبان #C. تو MVC4 بوضوع میتونید اینو لمس کنید.
امروز میخوام چندتا مثال از دستورات EF با  lambda expression بنویسم.
دستور Select
Dim query = db.table.Select(Function(q)  q)
Select سفارشی
Dim query = db.table.Select(Function(q) New With{q.field1,q.field2,...})
Select  پردن کردن فیلدهای یک Property
class:
Public Class person
Public Property id As Integet
Public Property fname As String
End Class
entity commmand:
Dim query = db.table.Where(Function(q) New person With{.id=q.idfield,.fname=q.namefield})
دستور where، single
Dim query = db.table.Where(Function(q) q.yourfield = yourvaribale).Select(Function(p) p).Single()
دستور join و group
join:
Dim query = db.table1.Join(db.table2, Function(q) q.youridfield, Function(p) p.youridfield, Function(q, p) New With {Key.q= q, Key.p= p})
group:
Dim query = db.table.GroupBy(Function(q) q.groupkey).Select(Function(p) p.Sum(Function(w) w.aggregate)) 
مابقی دستورات مسه iinsert,delete,update نگذاشتم. اگر دوستان مایل بودن pm بدن این دستوراتم براشون میزارم
موفق باشید

نظرات

  • مهمان در ۱۳۹۱/۰۵/۱۹ ۱۵:۱۱
    بی احترامی به دوستان VB کار نباشه ولی واقعاً VB زبان مزخرفی هستش و عمرش رو به پایان. C# هم یادگیریش خیلی راحت تره هم امکاناتش خیلی بیشتر. به نظرم دیگه از VB برای آموزش هم نباید استفاده کرد با توجه به این syntax بدی که داره.
    • مرتضی در ۱۳۹۱/۰۵/۱۹ ۱۷:۳۶
      واقعا که اینم از اون حرفها بود
      ویژگی برتر VB  به Csharp  تو راحت بودن یادگیریشه
      چون به زبان محاوره نزدیکتره
      امکاناتش خیلی بیشتر؟
      جالب بود!
      بازم نظر شخصی
      • مهمان در ۱۳۹۱/۰۵/۱۹ ۱۸:۲۰
        یعنی واقعاً به نظر شما VB نسبت به C# به زبان محاوره نزدیک تره؟!
        خواهشاً همین کدی که بالا نوشته شده رو بخونید ببینید آیا به زبان محاوره نزدیک هست یا نه؟
        یکی از سوالایی که همیشه تو ذهن من وجود داشته این بوده که چرا برای آموزش از VB استفاده میکنن؟!
        • مرتضی در ۱۳۹۱/۰۵/۱۹ ۱۸:۴۳
          می‌دونی چرا می‌گن به محاوره نزدیکتره؟
          چون تو vb.net برای مشتق گیری از کلمه کلیدی Inherits استفاده میشه که معنیش مشخصه اما تو CSharp میشه :
          برای پیاده سازی اینترفس‌ها ازکلمه کیدی Implements استفاده میشه که معنیش میشه پیاده سازی ولی تو Csharp میشه بازم :
          و......
          منظور از این که به زبان محاوره نزدیکه بخاطر کلمات کلیدیش هست
          نه اینکه بخوای با جمله‌بندی کدنویسی کنی
          فکر می‌کنم دیگه این سوال رو باید از ذهنتون پاک کنید
    • وحید نصیری در ۱۳۹۱/۰۵/۱۹ ۱۷:۴۷
      البته من با VB.NET کار نمی‌کنم ولی بیشتر سلیقه‌ای است. معمار ارشد CLR آقای Anders Hejlsberg (ایشون فقط خالق سی شارپ یا پیشتر دلفی نیست؛ یکی از معماران ارشد CLR هم هست)، یکی از تلاش‌هاش هماهنگ کردن تمام زبان‌های رسمی دات نتی و یکپارچگی و سازگاری بین آن‌ها است. خلاصه هرکاری با یکی بتونی انجام بدی با بقیه هم می‌شود.
      به علاوه در دلفی دات نت، syntax تعریف lambda expressions خیلی شبیه به VB.NET است.

      • مرتضی در ۱۳۹۱/۰۵/۱۹ ۱۷:۵۶
        این هماهنگی هم داره بیشتر میشه
        مثل اضافه کردن Iteratorها در vb.net11 
        تنها مورد بدرد بخوری که (من) ندیدم در vb.net ویژگی type forwarding بود
    • مهمان در ۱۳۹۱/۰۷/۰۴ ۱:۵۶
      اصولا این گونه نظرات نسبت به زبانی مثل وی بی دات نت به دلیل عدم سابقه تجربی و دانش کافی در مورد آن است. از نظر کارایی و سرعت و قدرت که تفاوت خاصی بین زبان‌های قابل استفاده در دات نت نیست. از نظر زیبایی سینتکس وی بی دات نت برتری داره و به همین دلیل برای آموزش و شروع کار بسیار بهتر است و برای ادامه هم هیچ مشکلی ندارد. سی شارپ هم جذابیت‌های خود را دارد. گاهی همان خلاصه نویسی آن لذت بخش است. اما اصولا یه برنامه نویس حرفه ای که یکی از این زبان‌ها را انتخاب کرده به راحتی می‌تواند در چند ساعت در دیگری نیز مهارت لازم را کسب نماید. بحث عمر تلف شدن در وی بی بسیار جالب است!
  • ایمان محمدی در ۱۳۹۱/۰۵/۱۹ ۱۶:۵۹
    چه اصراری است از زبانی استفاده کنیم که مدرسان ، حرفه ای‌ها ، اپن سورس نویس ها، طراحان الگو و .... از اون استفاده نمی‌کنند. نمی‌خوام وارد بحث مسخره vb.net  بهتر است یا C# بشم فقط اینقدر بدونید بخاطر انتخاب اشتباه زبان که خودم در شروع اون نقشی نداشتم دو سه سال از عمرم پای  vb.net حروم شد و دوست ندارم علاقمند واقعی برنامه نویسی این اشتباه رو انجام بدن.
    اگه به بحث‌های ساختاری این دو زبان کاری نداشته باشیم اینکه فضای کار و آموزش از vb.net  استفاده نمی‌کنه بهترین دلیل برای دوری جست از این زبان برنامه نویسه.
    کاشکی یک بند دیگه هم به وضعیت فناوری‌های مرتبط با دات نت از دیدگاه مرگ و زندگی! اضافه می‌شد و تازه کارها رو از vb.net  نهی می‌کرد.
    ببخشید که این نظر به محتوای فنی پست ارتباطی نداره.
    • مرتضی در ۱۳۹۱/۰۵/۱۹ ۱۷:۲۳
      سلام البته این نظر شخصیتون بود.
      درسته؟!
       در ضمن سویچ کردن از VB به CSharp زمان زیادی نمی‌خواد  و یا برعکس
  • میثم ثوامری در ۱۳۹۱/۰۵/۲۰ ۱:۳