PDA

View Full Version : سوال: تغییر در مدل در entity framework database first



a.golzar66
شنبه 15 اردیبهشت 1397, 12:15 عصر
سلام دوستان
من یک دیتا بیس اماده و پر از داده دارم خواستم برای گسترش ان تحت mvc انرا به روش database first وارد پروژه خودم بکنم
تمام مراحل را راحت انجام میدم و فایل با پسوند edmx با کلاس های مربوط به هر جدول ساخته میشه و حتی اطلاعات را هم به راحتی واکشی میکنم
فقط میخوام بتوانم از داخل پروژه و با تغییر DataAnnotations ها بتوانم مقادیر مثلا stringlenght و غیره وحتی ستون خاصی به جدول خاصی اضافه کنم ولی نمیدونم چطوری باید این کار رو بکنم خواهشن کمک کنید کارم چند روزه گیره همین قسمته

مهدی کرامتی
شنبه 15 اردیبهشت 1397, 13:57 عصر
سلام.

در روش Database First من چیزی ندیدم که بشه باهاش اینکار رو کرد.

RIG000
شنبه 15 اردیبهشت 1397, 15:08 عصر
سلام دوستان
من یک دیتا بیس اماده و پر از داده دارم خواستم برای گسترش ان تحت mvc انرا به روش database first وارد پروژه خودم بکنم
تمام مراحل را راحت انجام میدم و فایل با پسوند edmx با کلاس های مربوط به هر جدول ساخته میشه و حتی اطلاعات را هم به راحتی واکشی میکنم
فقط میخوام بتوانم از داخل پروژه و با تغییر DataAnnotations ها بتوانم مقادیر مثلا stringlenght و غیره وحتی ستون خاصی به جدول خاصی اضافه کنم ولی نمیدونم چطوری باید این کار رو بکنم خواهشن کمک کنید کارم چند روزه گیره همین قسمته
databasefirst برای اینکار نیست . بلکه کد فرست هست . کد فرست بابت همین موضوع اومده و در دیتابیس فرست جنریت شما از سمت دیتابیس همیشه خواهد بود . پس شدنی نیست

a.golzar66
شنبه 15 اردیبهشت 1397, 15:21 عصر
بسیار ممنون
پس این روش ارتباط دادن metadata class به کلاس اصلی چیه؟

مهدی کرامتی
شنبه 15 اردیبهشت 1397, 16:24 عصر
پس این روش ارتباط دادن metadata class به کلاس اصلی چیه؟
Metadata هایی مثل StringLength اگر روش Code First باشه روی ستون مربوطه در دیتابیس هم اثر می گذارند، اما اگر روش Database First باشه فقط کار اصلی اش، یعنی محدود کردن تعداد کاراکترهای ورودی در Input مربوطه در سمت رابط کاربری رو انجام میدن.

hakim22
شنبه 15 اردیبهشت 1397, 21:14 عصر
البته شما می توانید یک دیتابیس آماده رو با استفاده از EF به حالت Code First هم تبدیل کنید

a.golzar66
شنبه 15 اردیبهشت 1397, 21:43 عصر
البته شما می توانید یک دیتابیس آماده رو با استفاده از EF به حالت Code First هم تبدیل کنید

دوست عزیز یعنی چطور میشه یه توضیح کوچیک بدی؟چون با کدفرست خیلی راحت تر میشه ارتباطات رو پیاده سازی کرد

RIG000
یک شنبه 16 اردیبهشت 1397, 09:30 صبح
دوست عزیز یعنی چطور میشه یه توضیح کوچیک بدی؟چون با کدفرست خیلی راحت تر میشه ارتباطات رو پیاده سازی کرد
اینم یه حرف درستیه که حکیم زده پس اگر دیتابیست اماده باشه میتونی با Entity Framework Power Tools Beta 4 (https://marketplace.visualstudio.com/items?itemName=EntityFrameworkTeam.EntityFramework PowerToolsBeta4#review-details)میتونی انجامش بدی

hakim22
یک شنبه 16 اردیبهشت 1397, 18:16 عصر
می توانید از این افزونه استفاده کنید

https://marketplace.visualstudio.com/items?itemName=SimonHughes.EntityFrameworkReverseP OCOGenerator

hakim22
یک شنبه 16 اردیبهشت 1397, 18:23 عصر
همچنین می توانید درون پروژه گزینه ی Add و بعد New Item رو بزنید. در قسمت Data به ADO.NET Entity model بروید و گزینه ی CodeFirst From Database رو بزنید.

این گزینه ها در ASP Core نیست و باید از افزونه ی بالا استفاده کنید. بخش Designer کلا در EF Core حذف شده .