قاعدة بيانات ASP.NET MVC 4 المحلية إلى قاعدة بيانات SQL بعد النشر

StackOverflow https://stackoverflow.com/questions/19853779

  •  29-07-2022
  •  | 
  •  

سؤال

لقد قمت ببناء تطبيق MVC 4 Intranet يستخدم DB محلي لتخزين المعلومات. الآن بعد أن أرغب في نشره على إدخالات الخادم ، لا يتم حفظه في قاعدة البيانات. لقد جربت كل ما يمكنني التفكير فيه دون حظ.

هل هناك طريقة لإخبار التطبيق باستخدام قاعدة بيانات SQL بدلاً من مثيل محلي في IIS؟

هذه هي سلسلة الاتصال في web.config

- تحرير: رمز تنسيق أدناه بحيث يظهر في السؤال. -

<add name="MyCalendarConnectionString" connectionString="Data Source=DST09119\SQLEXPRESS;Initial Catalog=MyCalendar;Integrated Security=True"
      providerName="System.Data.SqlClient" />
    <add name="SampleConnectionString" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Sample.mdf;Integrated Security=True"
      providerName="System.Data.SqlClient" />
هل كانت مفيدة؟

المحلول

طريقتان للقيام بهذا:

  1. قم بتسمية سلسلة الاتصال الخاصة بك بعد اشتقاقك DbContext الفصل (أي ؛ إذا DbContext هو XyzEntities, ، ثم قم بتسمية سلسلة conn الخاصة بك XyzEntities <add name="XyzEntities" connectionString"..... />

  2. تمرير اسم سلسلة الاتصال في مُنشئ الأساس لـ DbContext. تريد استخدام مُنشئ مثل:

    public class XyzEntities : DbContext
    {
        public XyzEntities( string nameOrConnectionString ) 
            : base( nameOrConnectionString )
        {
        }
    }
    
    // usage
    var dbContext = new DerivedDbContext( "MyCalendarConnectionString" );
    

تحديث:

إذا لم تتمكن من الاتصال بمثيل SQL Server Express ، فهذا بسبب الاستخدام Integrated Security=True - ما لم تقم بتعيين هوية تجمع التطبيق على مستخدم لديه إمكانية الوصول إلى قاعدة البيانات ، فسيتم رفض الاتصال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top