[英]Can't add controller of model that inherits from other class
我正在使用實體框架和MVC3,我的問題是,如果模型繼承自另一個類,我就無法構建控制器。
例:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public class User : Person
{
public string Email { get; set; }
public string Password { get; set; }
}
public class Context : DbContext
{
public DbSet<Person> PersonSet { get; set; }
}
當我嘗試使用Controller with read/write actions and views, using Entity Framework
模板Controller with read/write actions and views, using Entity Framework
添加控制器User
Controller with read/write actions and views, using Entity Framework
我收到此錯誤:
'User'不是指定的'Context'類的一部分,並且無法修改'Context'類以向其添加'DbSet'屬性。 (例如,'Context'類可能位於已編譯的程序集中。)
我可以添加public DbSet<User> UserSet { get; set; }
public DbSet<User> UserSet { get; set; }
public DbSet<User> UserSet { get; set; }
的Context
,但我不認為這是正確的形式給出。
目前您的User
不是持久化類型,因為上下文不知道該類型,因此您不能使用持久化實體類型的腳手架來為User
類型創建控制器。 如果要將User
及其屬性存儲在數據庫中,請將其添加到您的上下文中:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>();
}
如果您不想將User
持久化到數據庫,則無法使用scaffolding來創建控制器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.