سلام به استاد مدائنی عزیز و همکاران محترمتون
اول میخواستم بابت این آموزش بسیار بسیار خوب تشکر کنم . چون این موضوعی که خیلی هم ساده نیست رو به زیبایی هرچه تمامتر توضیح دادین و کاملا قابل فهمه. میشه گفت بهترین آموزش ویدیویی فارسیه که تا حالا دیدم .
مشکلی که باعث شد پیام بدم اینه که من همراه با آموزش پروژه عملی پیش رفتم و بعد از ساخت مدل ها و repository و پوشه services هنگامی که در ویدیوی قسمت 19 و دزمان 02:30 قصد اجرای صفحه ادمین رو داشتم، با اروری مواجه شدم که عکسهای ویژوال استودیو و عکس ارور مرورگر رو براتون پیوست می کنم. لطفا راهنمایی کنید
ممنون
موفق باشید
سلام
سلامت باشی دوست من
در توصیر دوم پایین دقت کنید که پروژه شما ارور داره برای همین build نشده و کنترلر در خروجی نیست
ارور ها را برطرف کنید
ممنون که وقت گزاشتین
متوجه هستم که ارور دارم . ولی نمیدونم ارورها از چی هست ؟ چطوری میتونم حل کنم مشکلو ؟
چتد تا چیزی که احتمال میدادم مشکل از اونا باشه چک کردم و دوباره با فیلم چک کردم اما متاسفانه حل نشد :(
روی ارور ها دوبار کلیک کنید میره سراغ خط کد مربوطه
کدها همونایی هستن که شما نوشتین. من برای تمرین بار اول دقیقا از روی خود کدها نوشتم
میگه یک متد در interface اضافه کردید ولی اون رو پیاده سازی نکردید
ارور اول به این خط کد از PageRepository میره :
public class PageRepository:IPageRepository
و ارور دوم و سوم به این خط کد از PageGroupController میره :
private RedCmsContext db = new RedCmsContext();
بله . متد DeletePage از هست منظورش که ایمپلمنت کردم و کدش رو اینجا براتون میزارم :
public bool DeletePage(Page page)
{
try
{
db.Entry(page).State = EntityState.Deleted;
return true;
}
catch (Exception)
{
return false;
}
}
public bool DeletePage(int pageId)
{
try
{
var page = GetPageById(pageId);
DeletePage(page);
return true;
}
catch (Exception)
{
return false;
}
}
مشکل از این بود که توی اینترفیس مقادیری که دریافت میکرد رو تعیین نکرده بودم. مشکل اول حل شد . اما مشکل دوم همچنان هست. این خط مشکل داره چرا ؟؟
private RedCmsContext db = new RedCmsContext();
هم به RedCmsContext گیر میده هم به db . این خط کد توی PageGroupController هست .
بیزحمت کدهای context رو بررسی کنید مشکل نداره ؟
namespace DataLayer
{
public class RedCmsContext:DbContext
{
public DbSet<PageGroup> PageGroups { get; set; }
public DbSet<Page> Pages { get; set; }
public DbSet<PageComment> PageComments { get; set; }
}
}
حل شد :)
عذرخواهی می کنم باید redcmscontext رو public میکردم اما متاسفانه توی اون صفحه ctrl+z زده بودم و پاک شده بود کلمه public .
ببخشید وقتتون رو گرفتم . ممنون
موفق و سربلند باشید
ببخشید اون حل شد . ولی باز ارور جدید میده توی مرورگر در حالی که توی ویژوال استودیو هیچ اروری نمیده :(
The model backing the 'RedCmsContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: The model backing the 'RedCmsContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
Source Error:
Line 19: public ActionResult Index()
Line 20: {
Line 21: return View(db.PageGroups.ToList());
Line 22: }
Line 23:
Source File: c:\Users\saeed\Documents\Visual Studio 2013\Projects\RedCms\RedCms\Areas\Admin\Controllers\PageGroupsController.cs Line: 21
Stack Trace:
[InvalidOperationException: The model backing the 'RedCmsContext' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269).]
System.Data.Entity.<>c__DisplayClass1.<InitializeDatabase>b__0() +130
مشکل از فایل cmscontext بود که با add-migration و update-database درست شد . فک کنم تغییراتی که ادخ بودم نیاز به migration دوباره داشت .
ممنون
موفق و سربلند باشید