[ vujkev @ 29.01.2014. 19:29 ] @
Da kažemo da baza sadrži tabelu proizvoda i proizvođača. EF je generisao odgovarajuće entity-e tako da između ostalog entity Proizvođač ima property
Code (csharp):

public DbSet<Proizvod> Proizvodi { get; set; }
 

i entity Proizvod ima property
Code (csharp):

public DbSet<Proizvođač > Proizvođač { get; set; }
 


Sa upitom
Code (csharp):

dbContext.Proizvodi.Include("Proizvođač").Where(p=>p.Naziv.StartsWith("proi"));
 

sa jednim upitom uzimam sve podatke o proizvodima i odgovarajućim proizvođačima gde naziv proizvoda počinje sa "proi"

Kako u ovoj postavci omogućiti pretragu podataka koristeći FullTextSearch?
Koliko sam video da bi pretraživao koristeći FTS moram da napravim ili stored procedure ili table value function koja implementira ovaj način pretrage i da ih pozivam iz EF-a, što sam i uradio i to radi.
Problem je kako da napravim da u jednom upitu uzimam sve podatke o proizvodima i proizvođačima kao u gornjem primeru? Postoji li takva mogućnost?

P.S. Kod sam pisao iz glave i možda postoji neka greška u kucanju.
[ vujkev @ 30.01.2014. 10:09 ] @
Za sad sam problem rešio ovako:
- TVF vrši FullText pretragu i vraća kolekciju ID proizvoda koji odgovaraju traženom kriterijumu
Code (csharp):

 int?[] IDs = dbContext.GetProductIDByName(searchTerm).ToArray();

- zatim taj array koristim u sledećem upitu koji vraća kolekciju Proizvoda
Code (csharp):

dbContext.Proizvodi.Include("Proizvođač").Where(p => IDs.Contains(p.ProductID))
 


Ovo generiše dva upita ka bazi što je po meni zadovoljavajuće. Može li bolje?

Poz.