Aktywne Wpisy
w__w +140
Co jest urwa z tymi p0lakami-kier0wcami xD Jade 50 (idealnie rowne wg wskazan gps, wiec przecietny kierowca mial na loczniku wiecej niz 50) w zabudowanym i kazdy chcial mnie wyprzedzac XD
Serio jest tak, ze jezdzac codziennie po Niemczech czlowiek jezdzi z kultura, a tutal wlacza sie w czlowieku cham i agresja na drodze…
#polskiedrogi #polska #prawojazdy
Serio jest tak, ze jezdzac codziennie po Niemczech czlowiek jezdzi z kultura, a tutal wlacza sie w czlowieku cham i agresja na drodze…
#polskiedrogi #polska #prawojazdy
jaavi666 +84
#ciaza #rodzicielstwo #dzieci
Staralismy sie z rozowym o dziecko przez 2 lata
Wreszcie na poczatku roku sie udalo z mala pomoca kliniki (naturalnie)
Później się okazało, że będą blizniaki...
... a teraz że dwie dziewczyny...
... z kim będę układać lego, grać w gry i naprawiać auto? ( ͡° ʖ̯ ͡°)
Także życie zaskakuje i już szukam bagażnika dachowego do auta
Staralismy sie z rozowym o dziecko przez 2 lata
Wreszcie na poczatku roku sie udalo z mala pomoca kliniki (naturalnie)
Później się okazało, że będą blizniaki...
... a teraz że dwie dziewczyny...
... z kim będę układać lego, grać w gry i naprawiać auto? ( ͡° ʖ̯ ͡°)
Także życie zaskakuje i już szukam bagażnika dachowego do auta
Mam takie pytanko.
Robimy sobie taki projekt i sytuacja wygląda tak, że klient frontowy przesyła mi json-y w postaci:
Następnie powinno to być przemielone przez kilka metod po stronie backendu, tak aby uzyskać z tego pewne informacje, potworzyć obiekty i przygotować do wysłania do bazy.
M.in. z w/w danych tworzone będą obiekty typu TreeNode, których klasa wygląda tak:
public class TreeNode
{
public int Id { get; protected set; }
public int ParentId { get; protected set; }
//tyle wystarczy dla uproszczenia.
}
Na chwilę obecną wygląda to tak, że pobieram ostatnio dodane Id, i na jego podstawie podczas rekurencyjnego wyciągania danych z json'a ustawiam odpowiednie id-ki. Generalnie powinna to być operacja bardzo szybko, ale co w sytuacji, kiedy:
- pobiorę ostatnie dodane do bazy id,
- na jego podstawie przydzielę węzłom odpowiednie id, oraz parentId,
- wyślę do bazy i.....
...w tym momencie połączenie przymuli, a w tym samym czasie ktoś inny również wykona taką samą operację, jednakże jego dane pójdą do bazy i w bazie będą już obiekty mające Id, które ja ustawiłem w swojej operacji.
Teoretycznie mógłbym wysyłać każdy węzeł osobno i za każdym nowym ustawianiem Id, sprawdzać jakie jest ostatnio dodane, jednakże tych węzłów może być za jednym razem np. 100, i wtedy byłoby 100 insertów, + 100 zapytań do bazy o Id, dlatego wolałbym tego uniknąć.
Ma ktoś pomysł jak można by ugryźć ten problem?
#csharp #programowanie #programista15k #aspnet
Albo zmień bazę danych aby jakieś identity/sequence id miało.
Korzystam z EntityFramework i właśnie dlatego chcę to wszystko upakować w odpowiednie kontenery i poprzez DbContext wypchać to wszystko razem, a z tego co mi się wydaje zajmowałaby się tym transakcja.
Ale wszystko nadal rozbija się o to, co kiedy dojdzie do sytuacji, o której wspomniałem wyżej.
Osoba A kliknie zapisz - z bazy dostanie odpowiedź, że ostatnie dodane ID to 100.
Jeśli transakcje są dobrze skonfigurowane to druga osoba będzie przyblokowana (wykonanie SQL zostanie wstrzymane dopóki wcześniejsze operacje się nie skończą). Jeśli coś się spieprzy w operacji osoby A to powinien rollback pójść. Wtedy osoba B zrobi swoje jakby osoba A nic nie zrobiła.
https://msdn.microsoft.com/en-us/library/dn456843(v=vs.113).aspx
@pepepanpatryk: nie pamiętam już jak EF bo dawno cokolwiek robiłem, ale NHibernate radzi sobie z tym całkiem dobrze
@pepepanpatryk: Tzo?