【发布时间】:2011-04-29 07:37:59
【问题描述】:
我已经阅读了关于 SO 的类似问题,但似乎无法弄清楚这个问题,这是特定于 DBContext 对象的(我认为)。这里有一些虚拟代码来说明。
我的 Index() 操作中有以下代码:
public ActionResult Index()
{
AnimalDBContext db = new AnimalDBContext();
return View(db.Dogs);
}
我的模型有以下代码:
public class Dog
{
public int ID { get; set; }
public string name { get; set; }
public string breed { get; set; }
}
public class AnimalDBContext : DbContext
{
public DbSet<Dog> Dogs { get; set; }
}
在我看来,我有以下几点:
@model IEnumerable<AnimalProject.Models.Dog>
@foreach (var d in Model)
{
<h3>@d.name</h3>
<h2>@d.breed</h2>
}
一切都很好,视图将遍历我数据库中的每条狗。但是,我在同一个视图中有另一个表中的另一组 DBContext 数据。我也希望能够为该表枚举数据库中的每个项目。
这就是我想要的,如果你明白我的意思:
@model IEnumerable<AnimalProject.Models.Dog>
@model IEnumerable<AnimalProject.Models.Cat>
@foreach (var d in Dog)
{
<h3>@d.name</h3>
<h2>@d.breed</h2>
}
@foreach (var c in Cat)
{
<h3>@c.name</h3>
<h2>@c.breed</h2>
}
我尝试将类分组在一起并使用局部视图,但显然你不能在局部视图中使用不同的模型,因为我总是收到错误消息:
"模型项传入 字典是类型 'System.Data.Entity.DbSet
1[AnimalProject.Models.Dog]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1[AnimalProject.Models.Cat]'。”
那么,如何在我的视图中使用多个模型,它们都从数据库中的不同表中获取我想要的数据?
【问题讨论】:
标签: asp.net-mvc entity-framework