Avatar
ratpile
Člen
Avatar
ratpile:
public void Like(int id, AspNetUsers aspNetUser, Reviews reviewLike)
       {


           if (ModelState.IsValid)
           {

               var getUserId = _entities.Reviews.Find(id);  //získá id recenze
               aspNetUser.Id = getUserId.User_Id;  //přiřadí Id uživatele k User_Id pisatele recenze
               aspNetUser.Points = 100;  //přidělí body


               _entities.Entry(aspNetUser).State = EntityState.Modified;

               _entities.SaveChanges(); //error
           }


       }

Zdravím, prosím o radu.
Předešlý kód by měl zjistit Id recenze, následně přiřadit uživatele ke své recenzi a přidat mu pár bodů.
Vše končí vždy errorem nebo žádnou odezvou.

Díky moc za každou radu ;)

 
Odpovědět 1. května 23:34
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na ratpile
Jan Vargovský:

Ten error ti většinou řekne co je blbě, jestliže mu nerozumíš ty, tak nám ho tu aspoň pošli.

 
Nahoru Odpovědět  +1 1. května 23:48
Avatar
ratpile
Člen
Avatar
Odpovídá na Jan Vargovský
ratpile:
Reviews getReviewId = _entities.Reviews.Find(id);
               AspNetUsers getUserId = _entities.AspNetUsers.Find(getReviewId.User_Id);
               getUserId.Points = 10;

zkouším teď takto

nejdřív potřebuju najít recenzi, pak najít uživatele kterej ji napsal (uživatel je cizím klíčem u každé recenze) a pak mu přidat nějaký body

error to hlásí :

Odkaz na objekt není nastaven na instanci objektu.
a svítí řádek getUserId.Points = 10;

 
Nahoru Odpovědět 2. května 17:30
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na ratpile
Jan Vargovský:

Nenašlo to usera a je null ...

 
Nahoru Odpovědět 2. května 18:54
Avatar
LacoS.
Člen
Avatar
LacoS.:

Na hladanie chyb odporucam pouzivat try/catch v podprogramoch;
Vypise Ti to chybu, a ak ani z vypisu nechapes, co to znamena, pomoze Ti google alebo uzivatelia tuto...

// napr:
public void fxABCD(dajake_parametre_ak_treba)
{
        try
        {
                // cela Tvoja povodna fcia ...
        }
        catch (Exception ex)
        {
                // vypises si toto: ex.ToString())
                // pozor: ak ide program tadialto, tak vsetko v 'try' sa anuluje ... nic sa nevykona.
                // takze opatrne...
        }
}

... tento priklad bol pre C#, ale Ty tam mas VB, takze si to uprav 'na svoj obraz'

 
Nahoru Odpovědět  -3 2. května 19:30
Avatar
Odpovídá na LacoS.
Michal Štěpánek:

Kde jsi tam viděl VB? Já v původním dotazu vidím C#

Nahoru Odpovědět  +1 2. května 19:47
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
ratpile
Člen
Avatar
Odpovídá na Jan Vargovský
ratpile:

jasně, to si nějak dokážu vydedukovat

mě spíš zajímalo jestli vidíte něco blbě na tom fragmentu kódu

 
Nahoru Odpovědět 3. května 16:38
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na ratpile
Jan Vargovský:

V tom kódu není špatného nic. Pošli co je uvnitř

_entities.AspNetUsers.Find(getReviewId.User_Id)
 
Nahoru Odpovědět 3. května 19:29
Avatar
ratpile
Člen
Avatar
Odpovídá na Jan Vargovský
ratpile:

Tak už to funguje, chyba byla ve view namísto new { id = review.Id }); jsem měl new { id = model.Id });
V uvozovkách překlep.

díky všem

mám ještě jeden obecný dotázek

pokud bych chtěl ukládat, například u každé jedné recenze, který uživatel jí olikoval, jakou formou je to ta "best practice"?

 
Nahoru Odpovědět 3. května 19:54
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 9 zpráv z 9.