سؤال

وأنا تحولت بلدي DAL من استخدام LINQ لأكثر من إطار الكيان. لأن طلبي يتصل قواعد بيانات مختلفة اعتمادا على المستخدم الحالي، ولست بحاجة لخلق حيوي DataContext في وقت التشغيل ويمر في سلسلة الاتصال المناسبة. ومع ذلك، عندما حاولت خلق برمجيا اتصال إطار الكيان باستخدام بلدي سلسلة الاتصال القديمة، فشل الاتصال. أنه اشتكى أنه لم يتعرف على مفتاح في سلسلة الاتصال، "الخادم" على وجه الدقة.

ولقد وجدت أن كنت بحاجة للقيام بذلك في أجل الحصول على اتصال إطار الكيان للعمل:

EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Provider = "System.Data.SqlClient";
entityBuilder.ProviderConnectionString = clientConnectionString;
entityBuilder.Metadata = "res://*/xxxxxxxxxx.csdl...";
Entities entities = new Entities(entityBuilder.ToString());

لماذا هذا؟
ما هي الخاصية الفوقية للمنتديات هل ستكون المشكلة التي لها دائما نفس لاتصالات مختلفة متعددة منتديات ما ينبغي أن يكون؟
هل هناك أي طريقة للتغلب على هذه؟

ويرجع الفضل في ذلك مسبقا!

وتحديث 1: شكرا للتحديث Randolpho، ولكن ...
السبب كله أواجه هذه المسألة، هو أنني لا يمكن تخزين سلاسل اتصال في ملف التكوين. يتم تحديد سلسلة الاتصال بشكل حيوي في وقت التشغيل المستخدم الذي يتم الاتصال.

وهنا هو بلدي السيناريو بالضبط:
إذا كان المستخدم A يتم الاتصال، التطبيق تسحب البيانات من قاعدة بيانات A. إذا كان المستخدم B يتم الاتصال، التطبيق تسحب البيانات من قاعدة بيانات B.
يتم تخزين سلاسل اتصال في قاعدة البيانات الرئيسية، وعدد غير محتملة لا حدود لها. في كل مرة كنت إضافة مستخدم، وأنا لا أريد أن تذهب إلى الملف web.config، ناهيك عن حقيقة أنها ستحصل في نهاية المطاف ضخمة!

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

المحلول

وسوف تجد هذه الروابط مفيدة للغاية:

http://msdn.microsoft. كوم / EN-US / مكتبة / system.data.entityclient.entityconnection.connectionstring.aspx

HTTP: // weblogs.asp.net/pgielens/archive/2006/08/21/ADO.NET-Entity-Framework-Metadata.aspx

وأسفل الخط؟ إطار كيان يحتاج البيانات الوصفية لبناء تعيينات كيان الخاص بك.

وبالإضافة إلى ذلك، يجب عليك أن تنظر نقل المعلومات الاتصال إلى ملف التكوين الخاص بك بدلا من بنائه في التعليمات البرمجية. والحلقة الأولى تظهر لك كيفية القيام بذلك.

نصائح أخرى

والتوسع في الإجابة Randolpho ل:

وخاصية التعريف يشير تحديدا إلى موقع .SSDL (التخزين النموذجي،) .CSDL (نموذج مفاهيمي،) وملفات .MSL (رسم الخرائط النموذجي). هذه الملفات الثلاثة هم أساسا نموذج البيانات الكيان. و"الدقة: //". على غرار URI التصفيات المؤهلة إلى أن يتم تضمين الملفات كموارد في الجمعية EDM جمعت

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