PDA

View Full Version : خطا در ایجاد View و Controller ؟



nice_boy_a
شنبه 28 اسفند 1395, 08:34 صبح
سلام دوستان
وقتی میخوام View جدید یا Controller ایجاد کنم این خطا رو میده:
پروژه رو با نوع MVC و Identity پیش فرض ایجاد کردم.


there was an error running the selected code generator: 'A Configuration for type 'PostProject.Models.PostGroup' has already been added.
to reference the existing configuration use the entity<T>() or Complex Type<T>() methods.


لطفا راهنمایی کنید.
تشکر.

Moien Tajik
شنبه 28 اسفند 1395, 12:13 عصر
http://stackoverflow.com/a/30900750
http://stackoverflow.com/a/25178914

nice_boy_a
شنبه 28 اسفند 1395, 12:30 عصر
http://stackoverflow.com/a/30900750
http://stackoverflow.com/a/25178914

ممنون بابت لینک ها.
این خط رو اضافه کردم ولی مشکل برطرف نشد!

modelBuilder.Entity<User>();


مفهوم خطا چیه ؟ به چی ایراد می گیره ؟

Moien Tajik
شنبه 28 اسفند 1395, 21:48 عصر
کد داخل DbContext رو بفرستید .

nice_boy_a
شنبه 28 اسفند 1395, 23:16 عصر
کد داخل DbContext رو بفرستید .


public class DbContext : DbContext
{
public MyDbContext()
{

}

public DbSet<User> Users { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<Post> Posts { get; set; }


protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new UserConfig());
modelBuilder.Configurations.Add(new CommentConfig());
modelBuilder.Configurations.Add(new PostConfig());
base.OnModelCreating(modelBuilder);
}
}

Moien Tajik
یک شنبه 29 اسفند 1395, 16:52 عصر
این رو امتحان کنید :

public class DbContext : DbContext
{
public DbContext()
: base("YourApplicationDbName", throwIfV1Schema: false)
{
}

public static DbContext Create()
{
return new DbContext();
}


public DbSet<User> Users { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<Post> Posts { get; set; }
}


https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

nice_boy_a
یک شنبه 29 اسفند 1395, 19:10 عصر
متاسفانه بازم نشد.
برای ساخت View وقتی روی Action کلیک راست میکنیم و AddView رو می زنیم، باید Data Context Class رو انتخاب کنیم ؟ با انتخاب Data Context Class خطای ذکر شده نشون داده میشه ولی وقتی Data Context Class رو انتخاب نمی کنم بدون مشکل View ایجاد میشه.

برای ساختن Controllers بر اساس مدل، وقتی Data Context Class رو انتخاب می کنم اون خطا ظاهر میشه.
مفهوم خطا چیه ؟ واسه چی خطا می گیره ؟

Moien Tajik
سه شنبه 01 فروردین 1396, 21:24 عصر
متاسفانه بازم نشد.
برای ساخت View وقتی روی Action کلیک راست میکنیم و AddView رو می زنیم، باید Data Context Class رو انتخاب کنیم ؟ با انتخاب Data Context Class خطای ذکر شده نشون داده میشه ولی وقتی Data Context Class رو انتخاب نمی کنم بدون مشکل View ایجاد میشه.

برای ساختن Controllers بر اساس مدل، وقتی Data Context Class رو انتخاب می کنم اون خطا ظاهر میشه.
مفهوم خطا چیه ؟ واسه چی خطا می گیره ؟

مهفوم این هست که اون مدل که شما قصد دارید کنترلر و ویو هاش رو Scaffold کنید ، قبلا داخل DbContext شما پیاده سازی شده یعنی قسمت :
public DbSet<YourModel> YourModel { get; set; }

یکبار در Context شما نوشته شده و نیازی نیست که شما یکبار دیگه اون رو اضافه کنید.
شما وقتی کنترلری رو Scaffold میکنید خودش بطور خودکار میاد این خط مربوطه رو به DbContext که شما انتخاب میکنید اضافش میکنه ، دقت کنید که فقط 1 DbContext داشته باشید و DbSet مدل مربوطه رو نداشته باشید تا خود Scaffolder موقع اضافه کردن کنترلر بطور اتوماتیک اضافش کنه .

nice_boy_a
جمعه 04 فروردین 1396, 12:39 عصر
مهفوم این هست که اون مدل که شما قصد دارید کنترلر و ویو هاش رو Scaffold کنید ، قبلا داخل DbContext شما پیاده سازی شده یعنی قسمت :
public DbSet<YourModel> YourModel { get; set; }


منظورتون از قبلا چیه ؟ من فقط یک DbContext دارم و مدل هام رو داخل اون تعریف کردم (کد داخل DbContext رو هم فرستادم و ملاحظه فرمودین)



یکبار در Context شما نوشته شده و نیازی نیست که شما یکبار دیگه اون رو اضافه کنید.
شما وقتی کنترلری رو Scaffold میکنید خودش بطور خودکار میاد این خط مربوطه رو به DbContext که شما انتخاب میکنید اضافش میکنه ، دقت کنید که فقط 1 DbContext داشته باشید و DbSet مدل مربوطه رو نداشته باشید تا خود Scaffolder موقع اضافه کردن کنترلر بطور اتوماتیک اضافش کنه .


این سه خط رو کامنت کردم و مشکل برطرف شد!

modelBuilder.Configurations.Add(new UserConfig()); modelBuilder.Configurations.Add(new CommentConfig());

modelBuilder.Configurations.Add(new PostConfig());



متوجه نمیشم که چرا به اینا گیر میده!:متفکر: