تعيين اسم قاعدة البيانات ديناميكيا في LINQ إلى SQL

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

  •  07-07-2019
  •  | 
  •  

سؤال

وأستخدمه LINQ إلى SQL للاتصال قاعدة البيانات من طلبي. وأنا عندما تغير البيئة من الإنتاج إلى التدريج، I يمكن تحديث سلسلة الاتصال بي في الملف web.config. ولكن هناك واحد أكثر قيمة ولست بحاجة لتحديث عندما تتغير البيئة. وهذا هو اسم قاعدة البيانات. في LINQ إلى ملف مصمم SQL، ذكر اسم قاعدة البيانات كما سمة مثل -

[System.Data.Linq.Mapping.DatabaseAttribute(Name="somedbname")]

وكيف يمكنني التقاط قيمة اسم حيوي من بعض الملفات التكوين؟

وهو محل تقدير حقا أي مساعدة.

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

المحلول

وكما هو مذكور على http://msdn.microsoft. كوم / EN-US / مكتبة / system.data.linq.mapping.databaseattribute.name.aspx

و"يستخدم إلى قاعدة فقط إذا كان الاتصال نفسه لا يحدد اسم قاعدة البيانات." حتى تتمكن من حذف هذه السمة وكل شيء على ما يرام ستعمل العمل!

نصائح أخرى

ولقد استعملت فئة مجمع لتوفير السياق على غرار

public DataContext Context = new DataContext(SqlConnectionString); //much simplified

وأنا ثابت على هذه المشكلة عن طريق تحرير ملف .dbml خارج من Visual Studio (لا يبدو أن مصمم للسماح بالوصول إلى DatabaseAttribute) والتخلص من خاصية اسم هنا:

<Database Name="BadName" Class="OutputDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">

و(لاحظ أن الإجابة مقبولة لم تعد صحيحة: هذه السمة تم تجاوز سلسلة الاتصال بلدي)

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