Diskuze: LINQ dotaz

C# .NET .NET (C# a Visual Basic) LINQ dotaz American English version English version

Avatar
Maros2470
Člen
Avatar
Maros2470:

Zdravím. V ASP.NET databázi používám k načtení dat LINQ dotazy. Potřebovalbych poradit jak zapsat do jednoho dotazu dvě podmínky. Mám to takto:

if (NapetiId.HasValue && NapetiId > 0)
            {
                query = query.Where(p => p.NapetiID == NapetiId);
            }

Potřeboval bych tam přidat další podmínku výběru:

z=> z.ZavitID == ZavitId

Díky za rady.

 
Odpovědět 26.9.2014 20:21
Avatar
Maros2470
Člen
Avatar
Maros2470:

Pro úplnost celý kód vypadá takto:

public IQueryable<Zbozi> GetZbozis([QueryString("id")] int? NapetiId)
        {
            var _db = new eli_elektro.Models.PriceContext();
            IQueryable<Zbozi> query = _db.Zbozis;
            if (NapetiId.HasValue && NapetiId > 0)
            {
                query = query.Where(p => p.NapetiID == NapetiId);
            }
            return query;
        }

Potřebuji tam dodat další podmínku výběru dat jak jsem psal již dříve.

Editováno 27.9.2014 9:15
 
Nahoru Odpovědět 27.9.2014 9:15
Avatar
Maros2470
Člen
Avatar
Maros2470:

A ještě jedna otázka k tomuto dotazu. Jak docílit toho, aby se opakovaný záznam zobrazoval jen jednou?
Děkuji

 
Nahoru Odpovědět 27.9.2014 9:22
Avatar
Odpovídá na Maros2470
sadlomaslox25:
query = query.Where(p => p.NapetiID == NapetiId&&p.ZavitID == ZavitId).Distinct();

//nebo

query = query.Where(p => p.NapetiID == NapetiId).Where(z=> z.ZavitID == ZavitId).Distinct();
 
Nahoru Odpovědět 27.9.2014 15:15
Avatar
Maros2470
Člen
Avatar
Odpovídá na sadlomaslox25
Maros2470:

Díky. Můžeš mi ještě poradit, jak upravit tuto část kódu

public IQueryable<Zbozi> GetZbozis([QueryString("id")] int? NapetiId)

, abych tam dostal

int? ZavitId
 
Nahoru Odpovědět 27.9.2014 19:41
Avatar
Maros2470
Člen
Avatar
Odpovídá na Maros2470
Maros2470:

Já bych to napsal takto, ale nejsem si vůbec jistý:

public IQueryable<Zbozi> GetZbozis([QueryString("id")] int? NapetiId, int? ZavitId)
 
Nahoru Odpovědět 27.9.2014 19:49
Avatar
Odpovídá na Maros2470
sadlomaslox25:
public IQueryable<Zbozi> GetZbozis([QueryString("id")] int? NapetiId, [QueryString("zid")] int? ZavitId)

ten kod sem davam docela nerad, protoze si nejsem jisty smyslem davat sem ten kod. durazne doporucuju nastudovat si zaklady.

 
Nahoru Odpovědět 27.9.2014 20:08
Avatar
Maros2470
Člen
Avatar
Odpovídá na sadlomaslox25
Maros2470:

Díky moc. Postupně studuji.

 
Nahoru Odpovědět 27.9.2014 20:16
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.