کار کردن با Data Provider کلاینت در فریم ورک Entity

پنجشنبه 2 آبان 1398

Data Provider کلاینت در فریم ورک Entity یکی از قابلیت های جذاب فریم ورک Entity است، در این مطلب درباره Data Provider کلاینت در فریم ورک Entity صحبت میکنیم

 کار کردن با Data Provider کلاینت در فریم ورک Entity

فریم ورک Entity یک فریم ورک ORM متن باز برای ADO.Net است که دسترسی به داده ها را در اپلیکیشن شما راحت تر می کند، ما در این مطلب قصد داریم درباره Data Provider کلاینت در فریم ورک Entity صحبت کنیم. توجه داشته باشید که فریم ورک Entity عملیات دسترسی به داده ها را با استفاده از اجازه دادن به توسعه دهنده برای نوشتن کدهایی برای انجام دادن عملیات های CRUD(Create، Read، Update و Delete) انجام می دهد.

در فریم ورک Entity شما یک موتور کوئری سمت کاربر بسیار قوی را در اختیار دارید که زمانی که به کوئری گرفتن از داده ها نیاز دارید می توانید از آن استفاده کنید و یا اینکه می توانید از آن برای انجام عملیات های CRUD در دیتابیس استفاده کنید.


Data Provider کلاینت در فریم ورک Entity

در این بخش ما Data Provider کلاینت در فریم ورک Entity را برای شما توضیح خواهیم داد که در واقع یک موتور کوئری سمت کلاینت است که شما را قادر می سازد تا بتوانید کوئری های خود را برای داده های مفهومی خود اجرا کنید. Data Provider کلاینت در فریم ورک Entity شما را قادر می سازد تا بتوانید کوئری های خود را برای داده های مدل خود استفاده کنید و از سینتکس و رویکردی که بسیار شبیه به راهی است که شما برای ADO.Net Provider خود است اجرا کنید. Data Provider کلاینت فریم ورک Entity با استفاده از ESQL یا همان Entity SQL، یک زبان کوئری بر پایه متن و مستقل از provider کار می کند. توجه داشته باشید که هر دو کوئری LINQ و ESQL را تبدیل به درخت های دستورات متعارف می کند که شما می توانید از آنها در provider پایگاه داده خود استفاده کنید.

 Data Provider کلاینت در فریم ورک Entity


حالت های MSDN برای Data Provider کلاینت در فریم ورک Entity

قبل از آنکه بیشتر درباره Data Provider کلاینت در فریم ورک Entity صحبت کنیم باید بدانید زمانی که یک کوئری  اجرا می شود این کوئری در واقع به یک درخت دستورات متعارف تبدیل می شود. یک نمایش بر اساس شی مدل از این کوئری است. این درخت نشان دهنده دستورات select، update، insert و delete می باشد. کلیه پردازش هایی که بعدا انجام می شوند در این درخت انجام می شوند که در واقع نشان دهنده ارتباط بین System.Data.EntityClient provider و یک underlying .NET Framework data provider مانند System.Data.SqlClient است.

زبان کوئری ESQL یک SQL است که مانند یک زبان کوئری سازنده و provider با قابلیت پشتیبانی از مجموعه ای از عملگرها می باشد. زبان کوئری ESQL از بسیاری از فانکشن های کانونی نیز پشتیبانی می کند که از جمله آنها می توان به موارد زیر اشاره کرد:

توابع ریاضی، توابع Aggregate، توابعی برای کار کردن با بیت ها، توابعی برای کار کردن با رشته ها و توابعی برای کار کردن با تاریخ و ساعت.

شما می توانید از عبارت های کوئری همراه با یکدیگر استفاده کنید و یا آنها را در ESQL با عملگرهای مربوط به کوئری ترکیب کنید تا بتوانید فرم مناسبی را به کوئری های خود بدهید و بتوانید آنها را برای مدل های مفهومی داده ها و همینطور در Data Provider کلاینت در فریم ورک Entity استفاده کنید.

 Data Provider کلاینت در فریم ورک Entity


کار کردن با Data Provider کلاینت در فریم ورک Entity( بخش اول)

اجازه دهید برای کار کردن با Data Provider کلاینت در فریم ورک Entity کمی کدنویسی داشته باشیم. در این بخش خواهیم آموخت که چگونه می توانیم کار کردن با Data Provider کلاینت در فریم ورک Entity را شروع کنیم.

گام اول برای انجام این کار این است که یک شی از کلاس EntityConnection بسازیم، برای انجام این کار شما نیاز دارید که رشته مربوط به connection را به کانستراکتور کلاس EntityConnection ارسال کنید که این کار را در ادامه برای شما نشان داده ایم:

string connectionString = "specify your connection string here...";


EntityConnection entityConnection = new EntityConnection(connectionString);

نکته مهم این است که شما می توانید connection خود را از طریق همان روشی که در ADO.Net انجام دادید، باز کنید. به عنوان مثال قطعه کد زیر را در نظر بگیرید:

entityConnection.Open();

 Data Provider کلاینت در فریم ورک Entity


کار کردن با Client Provider کلاینت( بخش دوم)

یک نکته مهم دیگر این است که شما می توانید تعیین کنید که ارتباط با موفقیت برقرار شده است یا نه که این کار را می توانید با استفاده از ویژگی State از شیئی که از کلاس EntityConnection ساخته اید انجام دهید و بررسی کنید که اگر مقدار آن متناظر با ConnectionState.Open بود متوجه می شوید که ارتباط با موفقیت برقرار شده است.

برای اجرای کوئری های خود شما در ابتدا نیاز دارید که از شی Entity Command استفاده کنید( دقیقا مشابه شیئی که از ADO.NET ساخته بودید)، قطعه کدی که در ادامه برای شما آورده ایم این موضوع را به خوبی نمایش می دهد:

String queryString = "Select value a from IDGEntities.Author as a";


EntityCommand entityCommand = new EntityCommand(queryString, entityConnection);

 Data Provider کلاینت در فریم ورک Entity


کار کردن با Client Provider کلاینت( بخش سوم)

حال که شی command ساخته و مقدار دهی اولیه شد، شما ممکن است علاقه داشته باشید که از متد Execute Reader که متعلق به کلاس Entity Command  است استفاده کنید تا به این ترتیب بتوانید کوئری های خود را برای مدل های مفهومی داده ها اجرا کنید. در اینجا قطعه کدی را برای شما آورده ایم که بدانید که چگونه باید از متد Executereader بر روی شیئی که از کلاس Entity Command ساخته اید استفاده کنید و بعد از آن نیز نتایج را به صورت توالی تکرار کنید.

Entity DataReader entity DataReader = entityCommand.Executereader(CommandBehavior.SequentialAccess);


        while (entity DataReader.Read())


          {


                Console.WriteLine(entity DataReader.GetValue(1));


          }

همانطور که می توانید در قطعه کد بالا مشاهده کنید ما از Entity DataReader استفاده کردیم تا بتوانیم یک حلقه بر روی داده هایی که از اجرای متد Execute Reader از شی Entity Command باز می گردند داشته باشیم. Entity DataReader می تواند تنها به صورت رو به جلو کار کند و تنها داده ها را بخواند.

 Data Provider کلاینت در فریم ورک Entity


کار کردن با Client Provider کلاینت( بخش چهارم)

در این بخش سعی کرده ایم که کدهایی که تا به اینجا نوشته ایم را به صورت کامل برای شما بیاوریم( لطفا اطمینان حاصل کنید که رشته connection را به درستی با دیتابیسی که قصد دارید به آن متصل شوید مقدار دهی کرده اید). علاوه بر این شما ممکن است نیاز داشته باشید که یک دیتابیس را ایجاد کنید و یک Entity Data Model را بر روی Ide ویژوال استودیو ایجاد کنید.

string connectionString = "specify your connection string here...";


            using (EntityConnection entityConnection = new EntityConnection(connectionString))


            {


                if (entityConnection.State != ConnectionState.Open)


                {


                    entityConnection.Open();


                    String queryString = "Select value a from IDGEntities.Author as a";


                    using (EntityCommand entityCommand = new EntityCommand(queryString, entityConnection))


                    {


                        using (Entity DataReader entity DataReader = entityCommand.ExecuteReader(CommandBehavior.SequentialAccess))


                        {


                            while (entity DataReader.Read())


                            {


                                Console.WriteLine(entity DataReader.GetValue(1));


                            }


                        }


                    }


                }


            }

در صورتی که قصد دارید اطلاعات بیشتری در خصوص Data Provider کلاینت در فریم ورک Entity بدست آورید، می توانید با کمی جستجو این اطلاعات را به راحتی بدست آورید و بیشتر با مفهوم Data Provider کلاینت در فریم ورک Entity آشنا شوید. از آنجایی که Data Provider کلاینت در فریم ورک Entity مزایای بسیار زیادی را برای توسعه دهندگان این فریم ورک دارد شما می توانید محتواهای بسیار جذاب تری را نیز درباره این موضوع پیدا کنید.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 1k بازدید
  • 0 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید