Je fais en sorte que cette méthode récupère les enregistrements de la base de données. Comme vous pouvez le voir, je veux retourner un List<ITieneID>
où ITieneID
est une interface définie sur ma couche de gestion.Existe-t-il une meilleure façon de faire cette requête et cette fonction Linq?
AtlasWFM_Entities.Clases.Area
implémente cette interface. Il est assez clair que ce n'est pas un bon moyen de l'accomplir. Voici le code:
public override List<ITieneID> Buscar(ITieneID elementoPatron)
{
List<ITieneID> result = new List<ITieneID>();
var resultado = from a in base.Repository.Context.Areas
where a.areaID.Equals(elementoPatron.ID) || a.areaDescripcion.Contains(elementoPatron.Descripcion)
select new AtlasWFM_Entities.Clases.Area
{
ID = a.areaID,
Descripcion = a.areaDescripcion,
Estado = a.areaEstado,
};
foreach (var r in resultado)
{
ITieneID t = new AtlasWFM_Entities.Clases.Area
{
ID = r.ID,
Descripcion = r.Descripcion,
Estado = r.Estado,
};
result.Add(t);
}
return result;
}
Toutes les idées comment améliorer cela?
I * suspect * LINQ to SQL ne va pas aimer l'utilisation de la classe Area ici - Je pense qu'il y a des restrictions sur les types que vous pouvez construire. Je pourrais toutefois avoir tord. –
est-ce que même compiler? – Nix
Eh bien John, OP l'utilise déjà - seul OP obtient un groupe de zone, puis l'utilise pour instancier un autre groupe de zone pour une raison criptique. – ANeves