Entity framework 5 نسبت به نسخههای پیشین شاهد تغییرات بسیاری بوده است و مانند هر تغییر دیگری اینجا نیز ممکن است تغییرات ؛ باعث بروز مشکلاتی در روند توسعه نرم افزار شوند. EF در نسخه جدید خود در کدهای پشت صحنه Model به جای ObjectContext از DbContext که نسخه محدود شده ObjectContext میباشد استفاده میکند. همین امر به خودی خود باعث محدود شدن متدهای شئی Context شده است. متدها و خواصی که گاها برای انجام اعمال خاصی به آنها نیاز پیدا میکنیم ولی دیگر در دسترس نیستند. برای مثال برای یک برنامه خاص میخواستم مقدار CommandTimeout را به صورت دستی برای شئی Context تنظیم کنم ؛ ولی کد زیر دیگر قابل استفاده نبود:
context.CommandTimeout = 180;
همچنین این استفاده از DbContext در هنگام استفاده از WCF Ria در سیلورلایت باعث بروز مشکل شده و کلاسهای مدل در هنگام تعریف Domain Service Class توسط WCF Ria قابل شناسایی نیستند.یعنی WCF RIA به صورت خودکار قادر به تشخیص کلاسهای Model نمیباشد.
برای رفع این مشکل مراحل زیر را انجام دهید:
- دو فایل tt موجود در مدل را حذف نمایید.
2. مدل را در حالت Designer باز کنید و در بخش خصوصیات مدل مقدار Code Generation Strategy را از None به Default تغییر دهید.
3. پروژه را Rebuild نمایید. مشکل به همین سادگی رفع میشود.
حالا با خیال راحت میتوانید کلاسهای مدل را در پنجره Add New Domain Service Class مشاهده نمایید.