Я должен взять результаты запроса:
var query = from m in db.SoilSamplingSubJobs where m.order_id == id select m;
и подготовьтесь как ICollection так, чтобы у меня могло быть что-то как
ICollection<SoilSamplingSubJob> subjobs
в данный момент я создаю список, который не соответствует моим потребностям:
query.ToList();
то, что делает я делаю - является этим запрос. ToIcollection ()?
List - это ICollection. Вы можете изменить код query.ToList() на следующий.
query.ToList() as ICollection<SoilSamplingSubJob>;
Ваш вопрос звучит так, будто этот запрос возвращается как результат функции. Если это так, помните, что объекты Linq to SQL подключены по умолчанию, поэтому вам придется управлять тем, где открывается и закрывается контекст вашей базы данных. В качестве альтернативы вы можете создать объекты DTO (Data Transfer Objects), которые хранят данные, которые вы хотите использовать в остальной части вашей программы. Эти объекты могут вписываться в иерархию объектов любым удобным для вас способом.
Вы также можете создать эти DTO как часть запроса.
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>;
Поскольку запрос реализует IEnumerable, вы можете передать его конструктору коллекции по вашему выбору. ICollection - это интерфейс, реализованный несколькими классами (включая List
, который возвращает ToList) с разными характеристиками производительности.