سلام دوستان
میخوام یه استور پروسیجر رو به استیمول سافت وصل کنم(به روش Entity framework) ولی مثل کوئری نمیتونم متصلش کنم و به ارور میخورم (تو کوئری مشکلی ندارم)اینم کدم:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام دوستان
میخوام یه استور پروسیجر رو به استیمول سافت وصل کنم(به روش Entity framework) ولی مثل کوئری نمیتونم متصلش کنم و به ارور میخورم (تو کوئری مشکلی ندارم)اینم کدم:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
در روش CodeFirst کد زیر به سادگی اجازه میدهد یک SP را اجرا کنید.
در نهایت کافی است از تابع SPName ایجاد شده برای تغذیه منبع گذارش استفاده کنید.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by _H2_; 05-10-2014 at 23:30.
با تشکر ..
من از ef استفاده کردم ولی شما از linq دارید استفاده میکنید...
این چجور استور پروسیجری هست؟ من چیزی ازین نمیدونم لطف کنید راهنمایی کنید
تا اونجا که من میدونم استور پروسیجر اینطوریه..:
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by mreram; 17-10-2014 at 16:00.
سلام
بله!تا اونجا که من میدونم استور پروسیجر اینطوریه...
اینطوری که شما نوشته اید در دیتابیس ساخته میشود:
و آنطور که در پست قبلی ام برایتان نوشتم در EF میتواند فراخوانی و استفاده شود:کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کافی است در #C کلاس Class1 را new و خروجی تابع SPName را استفاده کنید، این تابع به روشنی مجموعه سطرهایی را که پروسیجر پس میدهد به شما تحویل میدهد.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
==============
البته این کد بیشتر مناسب EF-CodeFirst است و در EF-ModelFirst بدلیل ذات گرافیکی امکان طی کردن ویزارد های مربوطه هم وجود دارد...
برای EF-ModelFirst
پس از ساخت پروسیجر در دیتابیس...
به نمایه طراحی دیتابیس در برنامه خودتان بروید و فایل edmx را دبل کلیک کنید...
در جایی خالی راست کلیک کنید و گذینه Upgrade model from database را انتخاب کنید...
در برگه Add بخش Stored Procedures and Functions را باز کنید و SP مورد نظرتان را انتخاب کنید...
و Finish کنید...
مجدد در نمایه طراحی و جایی خالی راست کلیک کرده و گذینه Model browser را انتخاب کنید...
در پالت کمکی Model browser به گره Function Imports بروید...
درصورتیکه تابع تان را در زیر آن مشاهده کردید، راست کلیک و Edit اش کنید و در صورت فقدان راست کلیک و Add کنید...
گذینه های دیالوگ بازشده را با توجه به ماهیت عملکرد تابع تان کنترل و OK کنید...
کل کارها را ذخیره کنید...
حالا باید در کلاس DbContext که برای ارتباط با دیتابیس استفاده میکند SP را داشته باشید:
==============کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یه شخصه ترجیح میدهم دو خط کد شرافت مندانه EF-CodeFirst تایپ کنم تا اینقدر این طرف و آن طرف کلیک کنم!
موفق باشید و شب خوش.
خیلی لطف کردید ممنون
ولی من سمت دیتابیسم استوردپروسیجر رو ایجاد و به مدلم اضافه شده تا اینجا مشکلی ندارم و از روش linq to Ef برای منبع استفاده میکنم و بازم مشکلی ندارم ولی اون کدی که اول نوشتم و استوردپروسیجرم db.factorcustreport() هست ولی زمان کامپایل اررور میده و به یکی از try catch هام میره ...
خیلی لطف میکنید اگه کمکم کنید
سلام مجدد
اعتراف میکنم به کد #C پست اول تان دقت نکردم...
اگر برنامه شما به خطا میخورد باید متن کامل و دقیق خطا را اینجا قرار دهید، بطور طبیعی بدون متن خطا نمیتوان کمکی کرد.
فقط دقت کنید که اگر خطایتان InnerException هم دارد، متن انها را هم قرار دهید که مهم تر هم است.
Exception:Caught: "An error occurred while preparing the command definition. See the inner exception for details." (System.Data.Entity.Core.EntityCommandCompilationE xception)
A System.Data.Entity.Core.EntityCommandCompilationEx ception was caught: "An error occurred while preparing the command definition. See the inner exception for details."
Time: 10/20/2014 507 PM
Thread:<No Name>[20500]
مشکلم حل شد![]()
فقط راهی هست که این کد کوتاه تر بشه؟؟
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام مجدد
خیلی کد بزرگی نیست! ...فقط راهی هست که این کد کوتاه تر بشه؟؟
درصورتیکه به تمام فیلدها نیاز داشته باشید و فیلدها هم تداخل نام نداشته باشند میتوانید از نماد ستاره استفاده کنید.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)