TGViewer
DotNetZoom DotNetZoom @dotnetzoom · 2.82K subscribers
Post #1223 3.28K
✅ ساخت و اعمال شرط های ِDynamic در NET Core.

اینکه چطور اینکار رو انجام بدیم روش های مختلفی داره و از جنبه های مختلفی میشه بررسیش کرد
در این پست میخوام ابزار ها وکتابخونه های مختلف برای این کار رو معرفی کنم و در آخر یک نمونه پروژه که این کار رو به صورت عملی انجام داده معرفی کنم

🔸برای اعمال شرط به صورت داینامیک روی Linq بهترین کتابخونه اینه
System.Linq.Dynamic.Core (نسخه .NET Core)
System.Linq.Dynamic (نسخه .NET Full Framework)

🔹اگه نمیدونین چیه یا دنبال آموزشش میگردین اینم داکیومنت اش
https://github.com/StefH/System.Linq.Dynamic.Core/wiki/Dynamic-Expressions


🔸برای سمت فرانت اگر به یه پلاگین کوئری ساز داینامیک ترو تمیز نیاز دارین این چیز خوبیه
https://querybuilder.js.org/demo.html
این پلاگین شرط های ساخته شده رو به صورت json ارسال میکنه به سرور، پس سمت سرور باید این شرط ها به Expression های معادلشون ترجمه بشن تا توی دات نت قابل استفاده باشن. این کار با استفاده از Expression Tree قابل انجام هست.
البته لازم نیس خودتون اینکارو بکنین، پروژه زیر قبلا اینکارو انجام داده

🔹اینم نمونه پیاده سازی کامل یه پروژه ASP Core ایی که از همین پلاگین jQuery واسه ساخت شرط های پویا سمت front استفاده کرده و سمت backend هم میاد این شرط ها رو به Expression/Func ترجمه میکنه و اعمال میکنه
در نتیجه میشه شرط هاش توی Linq to Object (که Func میگیره) و همچنین روی ORM ها (که Expression میگیرن) اعمال کرد
https://github.com/castle-it/dynamic-linq-query-builder

🔸این هم ربطی به بالایی ها نداره ولی چیز باحالیه، یه کتابخونه اس که امکانش رو میده توی سی شارپ بتونین شرط های داینامیک ایجاد و بعد خودش اونها روبه Expression تبدیل میکنه
همچنین یه کامپوننت مخصوص WinForms هم داره که این امکان رو میده توی برنامه های ویندوزی توسط UI شرط های پویا بسازین
https://github.com/dbelmont/ExpressionBuilder
___________________
@DotNetZoom
Telegram Attach Files
More from @dotnetzoom
  1. Dec 27, 2021امکانات LINQ در NET 6. ✅ ۱- امکان مشخص کردن مقدار پیش‌فرض در OrDefault* var item1 = list1.…
  2. Dec 6, 2021انتقال داده ها به واسطه Azure Service Bus امروزه سرعت انتقال داده‌ها از اهمیت بالایی برخور…
  3. Nov 29, 2021اضافه شدن قابلیت Temporal Table به EF Core 6 ➖ مایکروسافت در سال 2016 قابلیت Temporal Tabl…
  4. Nov 10, 2021همه چیز در مورد NET Core 6. دیروز نسخه رسمی NET Core 6. به همراه نسخه رسمی Visual Studio 2…
  5. Nov 10, 2021نسخه نهایی NET 6.0 منتشر شد. نسخه 6.0 دات نت به صورت طولانی مدت پشتیبانی میشود (LTS) و توس…
  6. Nov 8, 2021کنفرانس NET. Conf هر سال خبرهای هیجان‌انگیزی داره. امسال هم NET. خبر های خوب و جذابی داره…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →