دسته بندی ها
22:08 1400/05/23

خطای The context is being used in Code First mode with code در انتیتی فریم ورک

مشخصات سوال کننده :
کاربر : mojtabahakimian     امتیاز کاربر : 155     رتبه کاربر : 10
دسته بندی : WPF سی شارپ Sql Server Entity Framework

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4048
هوش مصنوعی

پاسخ هوش مصنوعی

برای حل مشکل "The context is being used in Code First mode with code that was generated from an EDMX file"، چند نکته را بررسی کنید:

1. **اطمینان از نوع Context**: مطمین شوید که `DENAF1399Entities` درست به عنوان یک `DbContext` از EDMX ایجاد شده است. اگر شما در حال استفاده از Code First هستید، باید اطمینان حاصل کنید که فقط از آن استفاده می کنید.

2. **استفاده از Connection String**: از آنجا که شما Connection String را در فایل app.config کامنت کرده اید، این باعث می شود که Entity Framework نتواند به درستی به Database متصل شود. شما نیاز دارید که Connection String را فعال کنید یا از یک نوع اتصال صحیح استفاده کنید. اگر می خواهید از Connect String در کد استفاده کنید، مطمین شوید که نوع آن `EntityConnection` باشد.

3. **تعریف Connection String در App.config**: پیشنهاد می شود که Connection String را به فایل app.config برگردانید، به این صورت:

<connectionStrings>
    <add name="DENAF1399Entities" 
         connectionString="metadata=res://*/DataModelBDGT.csdl|res://*/DataModelBDGT.ssdl|res://*/DataModelBDGT.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=DENAF1399;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
         providerName="System.Data.EntityClient" />
</connectionStrings>

4. **استفاده از سازنده مناسب**: اگر قصد دارید Connection String را در کد بدهید، باید از سازنده ای استفاده کنید که `DbConnection` را قبول کند و اتصال را به صورت EntityConnection تنظیم کنید. به عنوان مثال:

using System.Data.Entity.Core.EntityClient;

string MyConnectionString = "metadata=res://*/DataModelBDGT.csdl|res://*/DataModelBDGT.ssdl|res://*/DataModelBDGT.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=DENAF1399;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"";
EntityConnection entityConnection = new EntityConnection(MyConnectionString);
DENAF1399Entities dbms = new DENAF1399Entities(entityConnection);

این تغییرات به شما کمک می کند تا از خطای مربوطه جلوگیری کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : hamdola 19:45 1400/05/25

دقت کنید که کانکشن استرینگ با توجه به نوع استفاده و تکنولوژی مورد استفاده ممکنه تغییر کنه. به صورت استاندارد برای استفاده در کدهای سی شارپ رشته اتصال به صورت زیر هست و خود انتیتی فریم ورک هم فرمت Connection String مخصوص به خودش رو داره.

 

کانکشن استرینگ به صورت استاندارد :

Server = (local); Database = DB; User Id = sa ;Password = ***

کانکشن استرینگ مخصوص انتیتی فریم ورک:

metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=test\test;initial catalog=DB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;"" providerName = ""System.Data.EntityClient

خب حالا اگر شما میخواید نحوه اتصال به دیتابیس رو تغییر بدید باید دقت کنید که از فرمت صحیح استفاده کنید.

ایجاد کانکشن استرینگ داینامیک در WP

ویرایش شده در دوشنبه 25 مرداد 1400 ساعت 19:47:14
به این پاسخ امتیاز بدهید    0
امتیاز: 121 رتبه: 12
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود