سؤال

للعينة ، أستخدم سلسلة الاتصال هذه:

<connectionStrings>    
<add name="PicturesDatabase" 
         connectionString=" Server=.;
                            Database=SomeprojectDatabase;
                            Trusted_Connection=True;"
         providerName="System.Data.SqlClient"/>
<../>

ثم أستخدمه في application_start ():

Database.DefaultConnectionFactory =
    new SqlConnectionFactory(ConfigurationManager.
        ConnectionStrings["PicturesDatabase"].ConnectionString);

وفي قاعدة البيانات الخاصة بي ، أحصل على قاعدة بيانات جديدة غريبة حقًا:myappnamespace.models.picturescatalogمع اثنين من الجداول dbo.edmmetadata و dbo.pictures

الجداول جيدة ، ولكن لماذا لا تنشئ قاعدة بيانات جديدة اسمها PicturesDatabase (كما في سلسلة الاتصال) مع تلك الجداول؟

لقد حاولت إسقاط هذا الجدول عدة مرات ، لقد حاولت إنشاء PicturesDatabase واستخدامه ... لكنه لا يزال يولد myappnamespace.models.picturescatalog. ما هي المشكلة معها ؟ وكيف يمكنني إصلاحه؟

هل كانت مفيدة؟

المحلول

System.Data.Entity.Infrastructure.SqlConnectionFactory ليس المقصود استخدامه بهذه الطريقة. يتضمن مصنع الاتصال هذا مُنشئًا يسمح لنا بالتغلب قِطَع من اللدغة النهائية للاتصال ، مثل اسم المستخدم وكلمة المرور والخادم وليس الأمر برمته.

على سبيل المثال ، يمكننا تغيير خادم قاعدة البيانات مثل هذا:

Database.DefaultConnectionFactory = 
        new SqlConnectionFactory("Server=MyDatabaseServer"); 

يمكن تحقيق ما تحاول القيام به هنا بسهولة من خلال توفير سلسلة اتصال في تطبيقك اعواد الكبريت اسم dbContext الخاص بك - أفترض أنه PicturesCatalog:

<connectionStrings>
   <add name="PicturesCatalog" connectionString="data source=.; 
        Initial Catalog=PicturesDatabase; Trusted_Connection=True;"
        providerName="System.Data.SqlClient" />
</connectionStrings>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top