Pregunta

Tengo que tomar los resultados de una consulta:

 var query = from m in db.SoilSamplingSubJobs where m.order_id == id select m;

y prepararse como un ICollection para que pueda tener algo como

 ICollection<SoilSamplingSubJob> subjobs

en el momento puedo crear una lista, que isnt adecuado a mis necesidades:

query.ToList();

¿qué hago? - es que query.ToIcollection ()

¿Fue útil?

Solución

Lista es un ICollection. Usted puede cambiar query.ToList código () a la siguiente.

query.ToList() as ICollection<SoilSamplingSubJob>;

pregunta suena como esta consulta se devuelve como resultado de la función. Si este es el caso, recuerde que el LINQ a SQL objetos están conectados por defecto, así que tendrá que gestionar cuando consigue abrir y cerrar el contexto de la base. Alternativamente puede crear DTO (transferencia de datos) Objetos que contienen los datos que desea utilizar en el resto de su programa. Estos objetos pueden encajar en su jerarquía de objetos de cualquier forma que desee.

También puede crear estas organizaciones narcotraficantes como parte de la consulta.

var query = from m in db.SoilSamplingSubJobs where m.order_id == id
            select new SubJobDTO {
                OrderNumber = m.order_id
            };
return query.ToList() as ICollection<SubJobDTO>;

Otros consejos

Dado que, implementa IEnumerable de consulta, puede pasarlo al constructor de la entrega de su elección. ICollection es una interfaz, implementado por varias clases (incluyendo List<T>, que devuelve ToList) con diferentes características de rendimiento.

Con un poco diferente sintaxis, puede hacer algo como esto, así que puede reducir en lo que sucede en ICollection. Este tipo de enfoque es ideal para angular y MVC cuando se tiene una gran mesa, pero sólo desea cargar algunos accesorios en la página cshtml:

ICollection<SoilSamplingSubJob> samples = dbContext.GetQuery().Where(m => m.order_id == id)
.AsEnumerable().Select(s => new
            {
                Id = s.order_id,
                CustomProperty = s.some_thing
            }).ToList() as ICollection<SoilSamplingSubJob>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top