تكوين اسم قاعدة البيانات EF CTP 4
-
28-09-2019 - |
سؤال
للعينة ، أستخدم سلسلة الاتصال هذه:
<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>