我目前正在开发一个使用 Code First 和 Linq to 实体的网站。我有一个名为 Productos 的自定义模型,其中包含一个名为 Especificaciones 的自定义模型列表,其中还包含一个名为 Etiquetas 的自定义模型。Etiquetas 有一个名为 EtiquetaId 的属性。
这是我的模型的一个例子:
public class ObjectProducto
{
public IEnumerable<ObjectEspecificaciones> Especificaciones { get; set; }
}
public class ObjectEspecificaciones
{
public IEnumerable<Etiquetas> etiquetas { get; set; }
}
public class Etiquetas
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int EtiquetaId { get; set; }
public string texto { get; set; }
}
我有一个用视图中的值填充的 int 数组,该数组称为 MyOptions。
我需要在 MyOptions 中获取所有包含 EtiquetaId 和 EtiquetaId 的 Especificaciones。
在这一点上,我已经检索到与 MyOptions 中的任何值匹配的所有 Especificaciones,但我需要 Etiquetas Inside Especificaciones 与所有 MyOptions 值匹配。
我有来自 Productos 的值,它们的所有 Especificaciones 和所有 Especificaciones 中的所有 Etiquetas 都已经在一个名为 procatm 的变量中。
目前我的查询如下所示:
ProductosCatalogo =
(from procatm in catm.ProductosCatalogo
where procatm.Especificaciones.Any(e => e.etiquetas.Any(et =>
et.tipo_etiqueta.CompareTo("categoria") != 0 &&
et.tipo_etiqueta.CompareTo("tipo") != 0 &&
MyOptions.Contains(et.EtiquetaId)))
select procatm).AsEnumerable()
我不知道我能不能做出类似的东西
ProductosCatalogo =
(from procatm in catm.ProductosCatalogo
where procatm.Especificaciones.Any(e => e.etiquetas.Any(et =>
et.tipo_etiqueta.CompareTo("categoria") != 0 &&
et.tipo_etiqueta.CompareTo("tipo") != 0 &&
MyOptions.All(...).....
select procatm).AsEnumerable()
有人可以帮我吗?