این سایت برای ie9 طراحی نشده است

لطفا دستگاه خود را بچرخانید.

استفاده از table های هم نام در مدل های Entity Framework متفاوت

۲۲ تیر ۱۳۹۵ نگین ربیعی
بدون دیدگاه

میخواستیم کدهای بات های تلگراممون  رو در قالب یک پروژه بصورت سرویس در بیاریم . همه چیز خوب بود تا جاییکه میخواستیم دیتابیس های  بات دوم رو به پروژه اضافه کنیم .  در EntityFramework Model هر بات Table هایی به نام های Requset و Response وجود داشت و ما با error :

The mapping of CLR type to EDM type is ambiguous because multiple CLR types match the EDM type ‘Request’. Previously found CLR type ‘BotService.ArtCollector.Request’, newly found CLR type ‘BotService.TehranBeauty.Request’.
The mapping of CLR type to EDM type is ambiguous because multiple CLR types match the EDM type ‘Response’. Previously found CLR type ‘BotService.ArtCollector.Response’, newly found CLR type ‘BotService.TehranBeauty.Response’.

مواجه میشدیم . پروژه رو ابتدا بصورت console نوشته بودیم . با تغییر در namespace های مدلمون تونستیم این error رو برطرف کنیم ولی زمانی که پروژه رو بصورت سرویس نوشتیم با همون error بالا روبرو شدیم .

راه حل :

برای هر کدوم  از مدل هامون که table هم نام داشتند ، پروژه  class library ایجاد کردیم و مدل دیتابیس رو اونجا اضافه کردیم .

<connectionStrings>
 <add name="shekamooEntities" connectionString="metadata=res://*/Shekamoo.csdl|res://*/Shekamoo.ssdl|res://*/Shekamoo.ms" />
<connectionStrings/>

در app.config پروژه اصلی  dll،namespace هایی که ایجاد کرده بودیم رو به جای * ها  گذاشتیم.

و در انتها dll پروژه های class library مون رو به Reference پروژه اصلی اضافه کردیم .