Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Entity Framework 6 i FullTextSearch

[es] :: .NET :: Entity Framework 6 i FullTextSearch

[ Pregleda: 1437 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.dynamic.isp.telekom.rs.



+104 Profil

icon Entity Framework 6 i FullTextSearch29.01.2014. u 19:29 - pre 123 meseci
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.

Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.dynamic.isp.telekom.rs.



+104 Profil

icon Re: Entity Framework 6 i FullTextSearch30.01.2014. u 10:09 - pre 123 meseci
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.
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

[es] :: .NET :: Entity Framework 6 i FullTextSearch

[ Pregleda: 1437 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.