Помощь с запросом Linq to Entities - PullRequest
       22

Помощь с запросом Linq to Entities

1 голос
/ 28 августа 2011

Я пытаюсь расширить свои знания о linq, поэтому я хотел бы создать следующий запрос без использования хранимой процедуры, но я не совсем уверен, как ее структурировать.

Если у меня три таблицы / сущности:

Фермер (FarmerId, BusinessTitle)

Produce (ProduceId, ProduceTitle)

FarmerProduce (FarmerId, ProduceId)

Как мне выполнить запрос, который выполнил поиск BusinessTitle & ProduceTitle по определенному слову (скажем, Raspberry) и вернул список сущностей Farmer.

Я могу выполнить поискна любом из продуктов Farmer of Produce, например:

var query = (from f in farmer
            where f.BusinessTitle.Contains("raspberry")
            select l).ToList();

var query = (from fp in FarmerProduce
            where fp.Produce.ProduceTitle.Contains("raspberry")
            select fp.Farmer).ToList();  

Но я не уверен, как объединить «справочную таблицу» FarmerProduce в один запрос.

Ответы [ 2 ]

2 голосов
/ 28 августа 2011

Похоже, это должно быть простое ИЛИ в linq.

var query = (from fp in FarmerProduce
            where fp.Produce.ProduceTitle.Contains("raspberry")
            || fp.Farmer.BusinessTitle.Contains("raspberry")
            select fp.Farmer).Distinct().ToList();

Добавлено отличительное.

1 голос
/ 28 августа 2011

Если вам нужны только фермеры:

var query = from f in farmer
            where f.BusinessTitle.Contains("raspberry") 
                  || f.Produces.Any(p => p.ProduceTitle.Contains("raspberry"))
            select f;

Предполагается, что многие-ко-многим были вставлены как Produces свойство навигации.

...