Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 49435|Atsakyti: 1

[Šaltinis] EF papildymo tipo "XXXX" objektai nepavyksta, nes kiti...

[Kopijuoti nuorodą]
Paskelbta 2021-05-12 09:43:53 | | |
EF prideda XXXX tipo objektą, kuris nepavyksta, nes kitas to paties tipo objektas jau turi tą pačią pirminio rakto reikšmę. Naudojant metodą "Pridėti" arba nustatant objekto būseną į "Nepakeista" arba "Modifikuota"

Nes kiti to paties tipo objektai jau turi tą pačią pirminio rakto reikšmę. Toks elgesys gali pasireikšti naudojant metodą "Pridėti" arba nustatant objekto būseną į "Nepakeista" arba "Modifikuota", jei kuris nors objektas brėžinyje turi prieštaraujančią rakto reikšmę
Taip gali būti todėl, kad kai kurie objektai yra nauji ir dar negavo duomenų bazės sugeneruotos rakto reikšmės (naujo objekto), tokiu atveju grafikas stebimas naudojant metodą "Pridėti" arba "Pridėta" objekto būseną, o tada nenaujo objekto būsena atitinkamai nustatoma į "Nepakeista" arba "Modifikuota".
Tiesą sakant, ši klaida yra ta, kad kai EF atidaro operaciją, EF kontekste jau yra duomenys su tuo pačiu pirminiu raktu, ir aš asmeniškai susiduriu su šia problema įvairiose situacijose:

1 situacija:

Modifikuojant, kartojant tuos pačius duomenis lentelėje (pvz., kartojant tos pačios prekės atsargų kiekį), šis atvejis turėtų būti pirmas kartas, kai konteksto talpykla neišvaloma

Kodas yra toks:


Čia esanti kilpa pirmą kartą nepraneša apie klaidą, o antrą kartą ji bus klaidinga

Sprendimas:


2 situacija:

Ciklo operacija pirmiausia prideda duomenų dalį, o tada modifikuoja duomenis

Kodas yra toks:


Čia taip pat pranešama apie klaidas, ypač naujų AP ar naujų subjektų atveju

Sprendimas:








Ankstesnis:"Redis Benchmark" našumo testas
Kitą:ASP.NET Išsamus "Core" tarpinės programinės įrangos paaiškinimas (9).
Paskelbta 2021-09-22 20:55:57 |
Išmokite mokytis...
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com