繁体   English   中英

无法添加从其他类继承的模型的控制器

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM