أفضل طريقة لتحديث LINQ to SQL classes بعد تغيير مخطط قاعدة البيانات

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

  •  09-06-2019
  •  | 
  •  

سؤال

أنا باستخدام LINQ to SQL classes في المشروع حيث تصميم قاعدة البيانات لا يزال في شيء من التمويه.

هل هناك طريقة سهلة مزامنة الطبقات مع المخطط, أو هل أنا بحاجة إلى تحديث يدويا الطبقات إذا كان تصميم الجدول التغييرات ؟

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

المحلول

يمكنك استخدام SQLMetal.exe لتوليد dbml أو cs/vb.استخدام ما قبل البناء النصي لبدء تشغيله و الهدف الدليل حيث datacontext المشروع ينتمي.

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\sqlmetal.exe 
  /server:<SERVER> 
  /database:<database> 
  /code:"path\Solution\DataContextProject\dbContext.cs" 
  /language:csharp 
  /namespace:<your namespace>

نصائح أخرى

أنا لم أجربها بنفسي لكن Huagati DBML/آدم أدوات هو الموصى بها من قبل أشخاص آخرين.

Huagati DBML/آدم الأدوات هو إضافة في Visual Studio يضيف وظائف Linq2SQL/DBML مصمم الرسم في Visual Studio 2008 ، ADO.NET الكيان الإطار مصمم في Visual Studio 2008 المزود بحزمة الخدمة SP1.الوظيفة الإضافية يضيف قائمة جديدة خيارات تحديث Linq2SQL مصمم الرسوم البيانية مع التغييرات على قاعدة البيانات ، إعادة تسمية Linq إلى SQL (DBML) و EF (آدم) الطبقات والخصائص استخدام .صافي اصطلاحات التسمية ، إضافة الوثائق/الأوصاف Linq إلى SQL التي تم إنشاؤها فئات من قاعدة بيانات خصائص.

Screenshot of DBML Tools

هنا هو حل سهل من دون أي برامج إضافية ، الذي يعمل فقط من أجل تغييرات بسيطة (مثل إضافة حقول قليل من الجداول ، إلخ).

تعليمات:

  • يمكنك سحب نسخة من تغيير الجدول إلى المصمم (سيتم إزالتها في وقت لاحق)
  • الآن حدد كل جديد (أو تغيير) الحقول (right-click ->) copy
  • في الجدول الأصلي انقر على الحق insert منهم (حذف تغيير الحقول الأولى)
  • الآن حذف الجدول يمكنك نسخها من

وأنا أعلم أنه هو شيئ واضح لكن بطريقة ما غير بديهية ، و لقد ساعدني كثيرا, حيث أن جميع سمات الحق وأنواع سيتم نسخ جميع الروابط البقاء سليمة.آمل أن يساعد.

متى تستخدم:

بالطبع هو - كما قال - على التغييرات الصغيرة, ولكن بالتأكيد أفضل من يدويا استبدال الجداول مع العديد من الروابط ، أو عندما كنت لا تريد الخاص بك كله بنية قاعدة البيانات التي تم إنشاؤها بواسطة SQLMetal.على سبيل المثال عندما يكون لديك كمية كبيرة من الجداول (مثلSAP) ، أو عند استخدام عبر ربط الجداول من قواعد بيانات مختلفة.

DamienG وقد كتب بعض قوالب t4 والتي يمكن أن تحل محل بعض ما VS يولد لك.هذه يمكن إعادة وقتما تشاء عن طريق أداة سطر الأوامر.

T4 قوالب لها فائدة إضافية تتمثل في كونها قابلة للتحرير.هذا يسمح لك قرص ماذا ولدت لك قلوب المحتوى.

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

آمل شخص آخر ينسجم مع نهج أفضل!

كتبت أداة للقيام النصي التغييرات Dbml النصوص نرى http://code.google.com/p/linqtodbmlrunner/ و مدونتي http://www.adverseconditionals.com

كيف حول تعديل خصائص الكيان/table داخل DataContext سطح التصميم داخل Visual Studio?

فعلى سبيل المثال لو تم إضافة عمود إلى جدول SQL Server:

  1. فتح *.dbml الملف.
  2. حق انقر على الكيان و اختر إضافة > مكان الإقامة.
  3. ملء القيم في إطار خصائص العمود الجديد.
  4. بناء الحل الخاص بك.

التلقائي إنشاء نموذج الطبقات يجب أن تعكس العمود الجديد الذي تمت إضافته.

enter image description here

enter image description here

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