【发布时间】:2020-01-29 02:22:24
【问题描述】:
我正在尝试从 3 个组合表中获取一些数据。
我的班级是ProizvedeniProizvodiBO,其中包含三个班级(ProizvodBO、ProizvodjacBO、ProizvodnjaBO)。这些类都模仿表的结构。
代码如下:
public IEnumerable<ProizvedeniProizvodiBO> NadjiProizvod(int idProizvoda)
{
List<ProizvedeniProizvodiBO> lista = new List<ProizvedeniProizvodiBO>();
Proizvod proizvod = azilEntities.Proizvods.FirstOrDefault(x => x.idProizvoda == idProizvoda);
ProizvodBO trazeniProizvod = new ProizvodBO();
ProizvodjacBO trazeniProizvodjac = new ProizvodjacBO();
ProizvodnjaBO trazenaProizvodnja = new ProizvodnjaBO();
ProizvedeniProizvodiBO noviProizvedeniProizvod = new ProizvedeniProizvodiBO();
trazeniProizvod.IdProizvoda = proizvod.idProizvoda;
trazeniProizvod.Kolicina = proizvod.kolicina;
trazeniProizvod.NazivProizvoda = proizvod.nazivProizvoda;
foreach (Proizvodnja proizvodnja in azilEntities.Proizvodnjas.Where(x => x.idProizvoda == idProizvoda))
{
trazenaProizvodnja.IdProizvoda = proizvodnja.idProizvoda;
trazenaProizvodnja.IdProizvodjaca = proizvodnja.idProizvodjaca;
trazenaProizvodnja.DostupneKolicine = proizvodnja.dostupneKolicine;
Proizvodjac proizvodjac = azilEntities.Proizvodjacs.FirstOrDefault(x => x.idProizvodjaca == proizvodnja.idProizvodjaca);
trazeniProizvodjac.IdProizvodjaca = proizvodjac.idProizvodjaca;
trazeniProizvodjac.NazivProizvodjaca = proizvodjac.nazivProizvodjaca;
trazeniProizvodjac.Grad = proizvodjac.grad;
trazeniProizvodjac.Ulica = proizvodjac.ulica;
noviProizvedeniProizvod.proizvod = trazeniProizvod;
noviProizvedeniProizvod.proizvodjac = trazeniProizvodjac;
noviProizvedeniProizvod.proizvodnja = trazenaProizvodnja;
lista.Add(noviProizvedeniProizvod);
}
return lista;
}
它返回正确数量的行(假设有 3 种不同的组合),但它返回的每一行都完全相同,而且总是最后一行(我手动检查)。
我尝试在 SQL 中运行相关命令,它们可以正常工作。
我正在将数据转发到视图。
Proizvod 基本上会转换为Product,Proizvodjac 转换为producer,Proizvodnja 是连接它们的中间表格。 Proizvodnja 有 2 个主键(idProizvoda 和 idProizvodjaca)。
有什么帮助吗?
【问题讨论】:
标签: c# asp.net-mvc linq