Я новичок в Linq для Entity, поэтому я не знаю, подходит ли то, что я делаю, лучший подход.Как написать этот запрос Linq to Entity?
Когда я делаю такой запрос, он компилируется, но выдает ошибку, что он не распознает метод GetItemSummaries. Выглядя, похоже, это потому, что он не любит настраиваемый метод внутри запроса.
return (from c in _entity.Category
from i in c.Items
orderby c.Id, i.Id descending
select new CategoryDto
{
Id = c.Id,
Name = c.Name,
Items = GetItemSummaries(c)
}).ToList();
private IEnumerable<ItemSummary> GetItemSummaries(CategoryDto c)
{
return (from i in c.Items
select new ItemSummary
{
// Assignment stuff
}).ToList();
}
Как бы объединить это в один запрос, так как я не могу вызвать пользовательский метод?
Я попытался просто заменить вызов метода фактическим запросом, но затем он жалуется, что ItemSummary не распознается, а не жалуется, что имя метода не распознается. Есть какой-либо способ сделать это? (Или лучше?)
Извините, это всего лишь учебное приложение, так что мои наречия вроде ленивы. Возвращаемая категория I - это объект Dto, созданный из объекта сущности, я не думаю, что могу сделать метод расширения в классе Dto и заставить его делать то, что я хочу. – Brandon
почему нет? вы можете поместить метод расширения на любой объект, если объект «Категория» содержит всю необходимую информацию в методе GetItemSummaries - без проблем. –