Entity framework 未映射到类而不是成员
我遇到了这个问题: 但是,既然我是以codefirst的方式创建POCO类的,它不是作为数据库中的表生成的,而是一个将其他模型放在一起的助手类,那么最好的方法是什么呢 已编辑:助手/帮助类的示例Entity framework 未映射到类而不是成员,entity-framework,asp.net-mvc-4,Entity Framework,Asp.net Mvc 4,我遇到了这个问题: 但是,既然我是以codefirst的方式创建POCO类的,它不是作为数据库中的表生成的,而是一个将其他模型放在一起的助手类,那么最好的方法是什么呢 已编辑:助手/帮助类的示例 [NotMapped] public class Dashboard { private VehicleDbContext db = new VehicleDbContext(); //Where DbSet of models are declared public List&l
[NotMapped]
public class Dashboard
{
private VehicleDbContext db = new VehicleDbContext(); //Where DbSet of models are declared
public List<User> UserList{get; set;}
public List<Car> CarList{get;set;}
public Dashboard()
{
Initialize()
}
private void Initialize()
{
CarList = db.Cars.ToList();
UserList = db.Users.ToList()
//more init algo
}
}
[未映射]
公共类仪表板
{
private VehicleDbContext db=new VehicleDbContext();//其中声明了一组模型
公共列表用户列表{get;set;}
公共列表CarList{get;set;}
公共仪表板()
{
初始化()
}
私有void初始化()
{
CarList=db.Cars.ToList();
UserList=db.Users.ToList()
//更多初始算法
}
}
如果您只是想忽略某些类型,请在DbContext
中尝试:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Ignore<Dashboard>();
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
Ignore();
}
不过,你是说
但只是一个将其他模型连接在一起的助手类
现在还不太清楚“将其他模型放在一起”是什么意思,可能是您必须将此类型保存到数据库中才能使其工作。例如,我有模型用户、汽车、许可证
。假设我想创建某种仪表板,其中包含来自这些模型的信息。我在某个地方读到,最佳实践是创建一个类,即Dashboard
,然后从那里创建控制器和视图。所以,我遵循了这个建议,但是因为codefirst方法将在类外创建表,所以我需要一种方法来告诉您不应该生成这个类。有什么想法吗?您的用户/汽车/许可证
实体是否包含对仪表板
的引用?没有。但是这些模型相互关联。您的仪表板
类是否与DbContext
在同一程序集中定义?