سلام وقت بخیر
توی پارت 18 که با migrationها قرار هست دیتابیس رو بسازیم توی محیط کنسول خطایی بهم نمیده و به راحتی مایگریشن آپدیت میشه و به ظاهر دیتابیس هم ساخته میشه اما در عمل توی sql server دیتابیسی بوجود نمیاد.
کانکشن رو هم تست کردم و مشابه آموزش پیش رفتم. یکبار هم بجای نقطه(dot) که برای data source استفاده کرده بودین، اسم سرور رو قرار دادم ولی باز هم دیتابیسی ساخته نشد:
<add name="CmsContext" connectionString="Data Source=DESKTOP-6EBS4F5;Initial Catalog=CmsDB;Integrated Security=True" providerName="System.Data.SqlClient" />نکته بعدی که هست ولی add-migration رو میزنم یک مایگریشن جدید میسازه ولی متدهای up, down خالی هستن! فکر میکنم مشکل اینجا باشه ولی چرا همچین اتفاقی میفته؟
این کد مایگریشن initial_db هست:
namespace DataLayer.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class Initial_db : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
}این کد مربوط به context هست:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataLayer
{
public class CmsContext:DbContext
{
public DbSet<Category> Categories { get; set; }
public DbSet<Page> Pages { get; set; }
public DbSet<Comment> Comments { get; set; }
}
}
کلا تا اینجا هیچ کجا خطایی نداده!
میشه راهنمایی کنید که چطور این مشکل رو رفع کنم؟
سلام مهندس،
دستور update databse که بعد add migration میدین چه اروری بتون بر میگردونه؟ اسکرین بدین تا راهنماییتون کنم
ممنون علی جان بابت جوابت ولی متاسفانه هیچ خطایی بهم نشون نمیده!
اگه به اسکرین دقت بکنی (منهای دوبار اشتباهی که توی کنسول انجام دادم، کامند رو اشتباه نوشته بودم) هم فایل configuration برام ساخته شده هم مایگریشن کلاسش ایجاد شده ولی up/down خالیه!
و توی کنسول هم خطایی برای ایجاد مایگریشن و آپدیت دیتابیس نداریم.
منهای یه خط! وقتی آقای مدائنی enable migration انجام داده یه خط نوشته code first migrations enabled for project datalayer ولی من این خط رو نمیبینم! نمیدونم ربط داره یا نه چون بعدش فایل config مایگریشن ساخته شده
سلام دوست من وقتتون بخیر
دوست عزیزم لطفا یک بار فولدر migration رو حذف کنید و مجدد مایگریشن ثبت کنید و بررسی کنید مایگریشن جدید هم خالی است یا نه
با تشکر
سلام مجدد وقت شما هم بخیر
چندین بار این کار رو کردم و باز هم مایگریشن خالی بوده.
نکته عجیب اینجاست که کد رو امروز روی یک سیستم دیگه اجرا کردم و مایگریشن ساختم؛ کلاس به درستی ساخته شد!!! ولی بعد از اینکه update database رو میزنم دیتابیس ساخته نمیشه.
مایگریشن ها رو پاک کردم و مجدد کامندها رو زدم و این بار مثل سیستم قبلی متدهای up/down خالی هستن!
(ویژوال استودیو روی هر دو سیستم یکی هست و فرقی ندارن.)
کسی میتونه راهنمایی کنه که چه کاری میتونم انجام بدم؟
دوست عزیزم اگر دیتای خاصی ندارید و میتونید دیتایس رو حذف کنید یک بار دیتابیس و مایگریشن هاتونو حذف کنید و مجدد مایگریشن ثبت کنید و دیتابیس رو بسازید
با تشکر از شما