[英]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.