我来自 PHP,当我试图在一个视图中显示来自多个实体的数据时,我真的很难使用一种模型/一种视图方法。
我已经用 EF 学习 asp.net mvc 4 大约一个月了,但仍然没有找到一个好的工作解决方案来解决这个问题。
我目前的方法是通过工作单元访问数据库,该工作单元为每个实体(数据库中的表)创建存储库
public GenericRepository<Domain> DomainRepository
{
get
{
if (this.domainRepository == null)
{
this.domainRepository = new GenericRepository<Domain>(context);
}
return domainRepository;
}
}
然后存储库保存来自给定实体的数据(在这种情况下为数据库),
public GenericRepository(PanelContext context)
{
this.context = context;
this.dbSet = context.Set<TTypeParam>();
}
并使用方法过滤数据等。
使用单个存储库来服务给定视图不是问题,因为它只使用一个模型(实体)。
当我尝试创建包含 ex 的模型类(组合)时。两个模型(域和域2)它不是给定上下文的一部分,因为该实体不存在,因此在视图中使用 @model namespace.Models.Combined 毫无意义。
现在我正在使用元组从多个存储库中提取数据并使用它来填充强类型视图,但我知道必须有更好的方法......
基本上问题是如何创建(抽象)?模型类(实体)?它将保存来自多个存储库的数据并用作给定视图的视图模型?
非常感谢您的帮助。