حل خطای MetadataException: Unable to load the specified metadata resource
یکی از خطاهای رایج در استفاده از EF یا Entity Framework رخ میدهد و گاها حل کردن آن بسیار زمان بر است همین خطایی هست که قصد داریم راجع به آن صحبت کنیم و من نیز با این خطا در زمان آپلود یکی از پروژه هام به سرور مواجه شدم !
برای توضیح علت خطا هم باید گفت، دلیل اصلی عدم تطابق متادیتا ها با دیتابیس موجود می باشد.
علارغم راهکار های زیادی که ارائه شده یکی از ساده ترین راه کار ها حذ Meta data های اضافی از CS یا کانکشن استرینگ هست یعنی اگر برای مثال رشته اتصال شما به این صورت است :
connectionString="metadata=res://*/Models.M2.csdl|res://*/Models.M2.ssdl|res://*/Models.M2.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=HSDBNAME;persist security info=True;user id=HyperSource_Test;password=HS123456789;MultipleActiveResultSets=True;App=EntityFramework""
است
بجای عبارت
metadata=res://*/Models.M2.csdl|res://*/Models.M2.ssdl|res://*/Models.M2.msl
از رشته خلاصه شده آن یعنی :
metadata=res://*/
استفاده کنید تا مشکل حل شود.
بنابراین CS شما باید چیزی شبیه به :
connectionString="metadata=res://*/;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=HSDBNAME;persist security info=True;user id=HyperSource_Test;password=HS123456789;MultipleActiveResultSets=True;App=EntityFramework""
باشد.
موفق باشید