【发布时间】:2016-03-31 14:56:29
【问题描述】:
我有一个主要模型 Produto,这个模型与其他模型有一些多对多的关系。
例如:一个产品可以有多个应用程序,一个应用程序可以属于多个产品;
一个 Produto 可以有多个 Opcionais,一个 Opcional 可以属于多个 Produtos;
我想在索引视图中显示我所有的 Produto,同时显示它们与 Aplicacao 和 Opcional 相关。
我的问题是检索所有这些数据。当我只用它的 Aplicacao 查询 Produto 时,它可以工作,但我不知道如何在其中加入相关的 Opcional。
产品
public class Produto
{
public int Id { get; set; }
public string Nome { get; set; }
public string Descricao { get; set; }
public ICollection<Aplicacao> Aplicacoes { get; set; }
public ICollection<Opcional> Opcionais { get; set; }
}
应用
public class Aplicacao
{
public int Id { get; set; }
public string Nome { get; set; }
public ICollection<Produto> Produtos { get; set; }
}
可选
public class Opcional
{
public int Id { get; set; }
public string Descricao { get; set; }
public ICollection<Produto> Produtos { get; set; }
}
上下文
public DbSet<Produto> Produtos { get; set; }
public DbSet<Aplicacao> Aplicacoes { get; set; }
public DbSet<Opcional> Opcionais { get; set; }
modelBuilder.Entity<Produto>()
.HasMany(c => c.Aplicacoes)
.WithMany(p => p.Produtos)
.Map(
m =>
{
m.MapLeftKey("ProdutoId");
m.MapRightKey("AplicacaoId");
m.ToTable("ProdutoAplicacao");
});
modelBuilder.Entity<Produto>()
.HasMany(c => c.Opcionais)
.WithMany(p => p.Produtos)
.Map(
m =>
{
m.MapLeftKey("ProdutoId");
m.MapRightKey("OpcionalId");
m.ToTable("ProdutoOpcional");
});
我想知道如何从数据库中查询所有 Produto 以及它们与 Aplicacao 和 Opcional 相关的内容,以便在我的索引视图中显示它们?
【问题讨论】:
-
向我们展示您尝试过的查询。
标签: c# entity-framework asp.net-mvc-5