Я делаю этот метод извлечения записей из базы данных. Как вы можете видеть, я хочу вернуть List<ITieneID>
, где ITieneID
- это интерфейс, определенный на моем бизнес-уровне.Есть ли лучший способ сделать этот запрос и функцию Linq?
AtlasWFM_Entities.Clases.Area
реализует этот интерфейс. Совершенно ясно, что это не очень хороший способ ее достижения. Вот код:
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;
}
Любые идеи, как улучшить это?
I * suspect * LINQ to SQL не понравится использование класса Area здесь - я думаю, что существуют ограничения на типы, которые вы можете создать. Я мог ошибаться. –
делает это даже скомпилировать? – Nix
Well John, OP уже использует его - только OP получает группу Area, а затем использует ее для создания экземпляра другой группы Area для некоторой критической причины. – ANeves