我在C#中使用这些句子从表DetalleContenido和Archivo中检索数据:
var detallesContenido =
from contenido in guiaContext.Contenido
where contenido.PuntoInteres.id_punto == puntoInteresID
from dc in contenido.DetalleContenido
where dc.Idioma.ds_idioma == idiomaCliente
select dc;
表之间的关系是:
我使用puntoInteresID和idiomaCliente来检索来自DetalleContenido和Archivo的所有行,这些行是PuntoInteres的一部分但是这句话Archivo总是空的!
sql sentece等价是:
Select dc.ds_nomDetContenido, dc.ds_descDetContenido, ar.archivo
from Contenido c, DetalleContenido dc, Archivo ar, Idioma i
where c.id_punto = puntoInteresID
and c.id_contenido = dc.id_contenido
and dc.id_idioma = i.id_idioma
and i.ds_idioma = idiomaCliente
and dc.id_archivo = ar.id_archivo;
我如何检索Archivo?
谢谢!
答案 0 :(得分:1)
您也可以
.Load()
关于所选对象的“参考”特性(当您使用它们时)。
但是对于你的查询,似乎你的Archivo表是1到多,你不能“包含”或“加载”方面的“很多”方面。你会不得不做一个“选择dc.Archivo”。我想。
答案 1 :(得分:0)
您是否尝试过使用Include()语句?我认为它看起来像这样
var detallesContenido =
from contenido in guiaContext.Contenido.Include("DetalleContenido")
where contenido.PuntoInteres.id_punto == puntoInteresID
from dc in contenido.DetalleContenido
where dc.Idioma.ds_idioma == idiomaCliente
select dc;
答案 2 :(得分:0)
怎么样:
var detallesContenido =
from contenido in guiaContext.Contenido
where contenido.PuntoInteres.id_punto == puntoInteresID && contenido.DetalleContenido.Any(c=>c.Idioma.ds_idioma == idiomaCliente)
select contenido.DetalleContenido;
答案 3 :(得分:0)
我的解决方案:
var detallesContenido =
from contenido in guiaContext.Contenido
where contenido.PuntoInteres.id_punto == puntoInteresID
from detalleContenido in contenido.DetalleContenido
where detalleContenido.Idioma.ds_idioma == idiomaCliente
select new { detalleContenido, detalleContenido.Archivo };
谢谢!