我已将子类别表连接到模型中的主表。结构类似于下面的结构。
但是,我需要从不同的表(子表)访问我的主表“Article”中的信息。所以我在索引中的ArticleController中编写了额外的代码,如下所示。
控制器:
public ActionResult Index()
{
var articles = db.DataToArticles.Include(a => a.AgeGroup).Include(a => a.Disabilities).Include(a => a.StrategyType);
return View(articles.ToList());
}
“DataToArticles”类似于上面的“StrategyTypeToArticle”表。
这是我的数据访问层,我没有遇到任何问题 DAL:
public class ArticleEntities : DbContext
{
public DbSet<AgeGroup> AgeGroups { get; set; }
public DbSet<Disabilities> Disabilitiess { get; set; }
public DbSet<StrategyType> StrategyTypes { get; set; }
public DbSet<Article> Articles { get; set; }
public DbSet<UserProfile> Profiles { get; set; }
public DbSet<DataToArticle> DataToArticles { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
}
}
现在我认为,这给了我一个错误
查看
@model IEnumerable<LearningEnterprises.Models.Article>
问题
问题是将控制器中的articles变量传递给我的视图IEnumberable。我知道它将它作为列表传递,但我之前没有遇到过这方面的问题。有没有办法解决这个问题?
答案 0 :(得分:2)
由于您正在查询db.DataToArticles
,因此您将IEnumerable<LearningEnterprises.Models.DataToArticle>
传递给视图而不是IEnumerable<LearningEnterprises.Models.Article>
。
答案 1 :(得分:0)
我认为你需要传递StrategyTypesTo然后你会得到文章和var文章可能不再是文章类型,因为你传递了那么多额外的
为了方便您使用动态或尝试其他帖子建议
List<dynamic> articles = db.DataToArticles.Include(a => a.AgeGroup).Include(a => a.Disabilities).Include(a => a.StrategyType);
@model List<dynamic>