با سلام
من توی پروژم از EF استفاده کردم حال می خواستم بدونم که چطور می تونم دیتا گریدم رو با Sp پر کنم (domain service)
Printable View
با سلام
من توی پروژم از EF استفاده کردم حال می خواستم بدونم که چطور می تونم دیتا گریدم رو با Sp پر کنم (domain service)
کسی بلد نیست؟
پس یه راهی برای اجرای کوئری های بزرگ بدون sp بدید!!!!!!!!!!!
دوست عزیز اول اینکه کار با sp تو سیلور یکم مشکل و پیچیده ی پیشنهاد می کنم استفاده نکنید مخصوصا موقعی که از domain service استفاده می کنید. راه حل جایگزین LINQ
اما جهت آگاهی خیلی خلاصه روند کاریش رو میگم
در فایل EDMX وارد قسمت Model browser میشید. سپس از قسمت EntityContainer بروی Function Imports کلیک کنید در صفحه ی پیش رو sp خود را انتخاب و یک اسم برای اون جهت ارجاع انتخاب کنید(ترجیحا همون نام SP)
در قسمت Entites همان صفحه table یا view مربوط به همان sp را انتخاب کنید و OK
پروژه را یک بار build کنید
در قسمت domain service خودتون همانند table یا view که در ابتدا تشکیل شده به sp مورد نظر ارجاع بدید(باید خودتون درست کنید)
موفق باشید
این راه رو قبلا تست کردم همان طور که گفتید هم پیچیده و هم وقت گیره .
به هر صورت این هم یک ضعفه سیلورلایته
با استفاده از function import به هيچ وجه نميشه گفت كه كار پيچيده است، مگه وقتي خودتون دستي يا با استفاده از ديتاست ويزارد اين كار مي كنيد كار خيلي راحت تري انجام ميديد؟صرفا چون به روش هاي سنتي عادت داريد براتون شايد ساده بياد. دوم اينكه استفاده از function import از طريق designer روش خيلي مطمئني نيست چون ممكنه به هر دليل اون رو پاك يا حذف كنيد. در كل فايل ها edmx خيلي روشون نبايد حساب كرد(البته منظور هميشه نيست) روش اصولي تر ايجاد موارد لازم از طريق كد با استفاده از partial هست،اين روش ميشه گفت پيچيده است.
روش بعدي اينه كه با روش سنتي(Connection، Command و ...) spرو اجرا كنيد، بعد ديتا به دست اومده رو تو يك ليستي از يك كلاس معادل بريزيد و از طريق متد هاي Invoke در DomainService ديتا رو برگشت بديد. براي تبديل ديتا از sp به هر كلاس معادلي مي تونيد با استفاده از Reflection يك متد عمومي ايجاد كنيد كه بتونه براتون هر نوع خروجي sp رو به كلاس معادل تبديل كنه.
اما در نهايت بايد گفت كه روش هاي كه در سيلورلايت استفاده ميشه روش ها مدرن هست و به همين دليل روش هاي سنتي در اون كمي با زحمت ترن. اما اين اصلا ضعف محسوب نميشه. اين مثل اين ميمونه كه بگيد چون گوشي هاي جديد مادون قرمز ندارن پس داراي ضعف هستند.
ماكروسافت براي تكنولوژي هاي مختلفش انقدر tools و generator هاي ساده گذاشته كه وقتي شما به جايي ميرسيد كه tools ش كمتره فكر مي كنيد اين ضعفه.
ای کاش با یه مثال ساده نحوه فراخوانی متد فراخوانی sp و پر کردن دیتاگرید(سمت کلاینت) با این متد رو توضیح می دادید.