سؤال

أنا ركبت مقابل SP1 و لعبت حوالي مع إطار الكيان.

أنا خلقت مخطط من قاعدة البيانات الموجودة وحاول بعض العمليات الأساسية.

أكثر من ذلك ذهب حسنا ، ما عدا مخطط قاعدة البيانات تحديث.

لقد غيرت قاعدة البيانات في كل الطريقة الأساسية:

  • إضافة جدول جديد
  • حذف جدول
  • إضافة عمود جديد إلى جدول موجود
  • حذف عمود من جدول موجود
  • تغيير نوع موجود العمود

الثلاثة الأولى بشكل جيد ، ولكن تغيير نوع العمود الحذف لم يتبع التغييرات على قاعدة البيانات.

هل هناك أي طريقة لجعل العمل من مصمم ؟ أو هو لا يؤيد في الوقت الراهن ؟ لم أجد أي مادة حتى الآن, ولكن لا يزال البحث.

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

المحلول

أنا أظن أن هؤلاء لا يحدث لأن هذا من شأنه كسر بناء على التعليمات البرمجية الموجودة ، ولكن هذا مجرد تخمين من جهتي.

هنا هو بلدي المنطق:

أولا EF هو من المفترض أن يكون أكثر من 1:1 تعيين الجدول ، لذلك فمن الممكن تماما أن فقط لأنك حذف عمود من الجدول لا يعني أن هذا الكيان لا يمكن ان تكون خاصية الوصف.كنت قد مجرد خريطة الملكية إلى جدول آخر.

ثانيا تغيير نوع استطيع كسر يبني.هذا هو الأساس الوحيد هناك.

نصائح أخرى

لقد وجدت أنه في عام ، لا يزال هناك عدد غير قليل من البق مع 'تحديث نموذج من قاعدة البيانات' وظيفة.

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

من العروض من مصمم رأيت انه لا تشوبه شائبة أداة.وهو الإصدار 1.0 المنتج ، لذلك لا بد أن يكون بعض نقاط الألم.تغيير نوع واحد منها على ما يبدو.من مشاهدة مصمم رمز جيل ، وأنا أحسب أنه يمكن لأحد أن يكسر إما في وقت الترجمة (غير المرجح) أو في وقت التشغيل (عندما يكون النموذج هو تنفيذ في الواقع).

تحتاج إلى حذف عمود من قبل نفسك من مصمم أو ملف XML.

كما ذكر من قبل, يمكنك فقط حذف عمود من المصمم.بقدر تغيير نوع بيانات العمود:مجرد تحديث نموذج من قاعدة البيانات ثم انتقل إلى جدول تعيينات و حدد العمود الذي قمت بتغييرها في DB.القيم على اليمين تمثل النموذج الخاص بك ، الغريب هذا لا الحصول على تحديث تلقائيا ، ولكن فقط حدد العمود إلى اليمين ثم اذهب الى خصائص ثم تغيير نوع البيانات هناك.يجب أن تصبح القائمة المنسدلة.

الهتافات.

رودي

لقد بنى طلب مماثل مثل طلب الخاص بك.ولكن الحل كان الثابت.سأحاول أن أقول ،

  1. لديك لإنشاء قاعدة البيانات الخاصة بك إدارة clases و هذه الكائنات سوف تكون مسؤولة عن إنشاء وتحديث قاعدة بيانات مخطط (أنا خلقت يدويا ذلك).

  2. رأيت مقالة جيدة و شفرة المصدر على ADO.NET فريق المدونة ثم يمكنك أيضا تحميل EDMTools من هذا بلوق, مفتوح المصدر.و يمكنك أيضا تنفيذ نموذج الجيل وتحديث إجراءات من هذا المشروع.

  3. وأخيرا عندما المخطط تغير يجب إعادة ربط النموذج الخاص بك وإعادة بناء البيانات الخاصة بك الجمعية أثناء وقت التشغيل.ولكن عليك أن تعرف أهم أعتقد, يجب أن التعادل البيانات الخاصة بك نموذج الجمعية إلى المشروع الخاص بك مع المتباعدة (تحقق من هذا بعد)

    طريقة أخرى ، يجب أن تنتظر EF 4.0 الإصدار (عليه CTP 1 الآن) ، فإنها أعلنت أنها سوف توفر إنشاء أو حذف أو تحديث DatabaseScript وظائف.

جيد قفل

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

أنا لا أعبث مع EF رمز أول فصول جيدة أو سيئة (بما في ذلك nonsensically اسمه أعمدة العلاقات) لتسهيل عملية.

أي مصمم أو ORM مخطط مولد سوف تكون قادرة على جعل التغييرات إلى قاعدة بيانات الإنتاج الخاصة بك إذا كان لديه مقيدة البيانات في ذلك.هذا هو السبب يجب أن تبدأ دائما مع فحص إذا كانت التغييرات الخاصة بك إلى DB مجدية في محاولة منهم على تطوير قاعدة البيانات ومن ثم التكيف مع التعليمات البرمجية الخاصة بك لتعكس التغييرات.

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