I’m a really big fan of Scott Hanselman and the way he manages his personal/work time. While watching his „soft” talk titled „Scaling Yourself” I was surprised when he described his way of answering some questions coming from all over the world (via email). He said that each of us has a limited number of keystrokes until we die so, it’s such a waste to write a dedicated email with long answer and examples in the code. Why? Because we could optimize that process and share our knowledge with other folks ou...
As you may already know I really, really like LINQ. One day I'll probably join together all my posts about this incredible featureand release pretty neat compendium/one-oh-one about this great feature. But while I'm not sitting and joining every post from this blog that have word "LINQ" in it into one, big pile, let's talk a bit about joining and grouping collections in LINQ.
Sztuka programowania 2842 dni, 10 godzin, 12 minut temu 129 źrodło rozwiń
This is one of those "I had to explain this couple times already so next time I want something I can redirect people to" kind of post. What I want to write about is difference in behavior between using new() and DbSet.Create() for instantiating new entities.
Czyli dzielę swoim Full Stackowym frameworkiem (Entity Framework, WebApi, OAuth, SPA itd.) licząc, że komuś się to przyda i po cichu, że ktoś będzie chciał mnie wesprzeć w jego rozwoju. Tudzież dobrym słowem. Dodatkowo egzystencjalnie bajdurzę o transformacjach zespołów muzycznych.
Architektura 2868 dni, 15 godzin, 56 minut temu 303 źrodło rozwiń
In previous post I've shown how a temporary table can be generated based on IQueryable and then reused in subsequent queries. I have also pointed out a serious limitation. The goal of this post is to address that limitation and touch on unit testing aspect.
I'm a huge fan of entity based and result set based relational mapping (classic ORMs). I'm also huge fan of DML based relational mapping (micro ORMs). In general I'm a huge fan of every technology that allows me to get the job done in the best possible way. I believe that one should never limit himself to single approach within a project - it should always be about choosing the best tool for the job. But sometimes there are real life constraints (licensing, business, politics etc.) which are limiting the...
We wpisie porównuje szybkość działa biblioteki Simple.Data z Entity Framework.
Sztuka programowania 2937 dni, 39 minut temu 364 źrodło rozwiń
The letter „U” in CRUD means Update. Is that something hard to do in our applications? Of course not! We simply get some data, change the value of selected columns and save our changes. That’s it. However, sometimes thing may not go so smooth, especially when we (as programmers) wouldn’t predict some edge-case scenarios. One of this is updating same data by many users at the same time. That’s why today’s post will be dedicated to the concept of optimistic concurrency and implementing that using Entity Fr...
Jakiś czas temu rozpocząłem implementację projektu, którego celem jest zapoznanie mnie z tematyką CQRS/ES (kod ten znajdzie się także wkrótce w serii postów o tej tematyce). Jednocześnie uznałem, że to dobry moment na poznanie drugiej wersji Release Candidate nowego ASP.NET. W pewnym momencie przyszedł moment, w którym chciałem dodać do projektu połączenie z bazą danych. Nie myśląc długo udałem się do projektu odpowiedzialnego za dostęp do danych, po czym w pliku project.json dodałem zależność do Entity ...
Jakiś czas temu w ramach serii CodeTip podzieliłem się z Wami trikiem, który pozwalał w Entity Framework na aktualizację property bez uprzedniego pobrania obiektu. W razie czego link do wpisu macie tu. Jeden z czytelników zwrócił uwagę na możliwe użycie biblioteki, która ułatwia cały proces, a w dodatku oferuje kilka ciekawych opcji, niedostępnych w EF. Po zapoznaniu się z tym „wynalazkiem” jestem bardzo mile zaskoczony, w związku z czym chciałbym przedstawić jego możliwości. Batch update i delete ...
Bazy danych i XML 3098 dni, 22 godziny, 38 minut temu 338 źrodło rozwiń
Podczas pracy nad projektem lubię dysponować zestawem poglądowych danych, na których mogę operować podczas postępujących prac, spojrzeć jak prezentują się po odpaleniu aplikacji itd. Dziś opowiem o szybkim, łatwym i w pełni zgodnym z ideą Code First sposobie na wypełnienie bazy różnego rodzaju danymi podczas uruchamiania aplikacji i strategiami inicjalizacji bazy podczas każdego startu. Kiedy powinna być tworzona na nowo, kiedy powinna być pozostawiona w spokoju i co jeśli chcemy przy każdym debugowaniu ...
Daj się poznać 2016 3114 dni, 1 godzinę, 14 minut temu 175 źrodło rozwiń
Object-Relational Mapping (w skrócie ORM) powstał, aby pogodzić dwa niekompatybilne ze sobą światy: obiektowy oraz relacyjny. Dzięki zastosowaniu ORM-ów programiści nie muszą martwić się ręcznym tworzeniem połączeń do bazy danych czy chociażby pisaniem klasycznych zapytań SQL. Wszystko co musimy zrobić to pobrać framework i dokonać prostej konfiguracji. Niestety jak to zwykle w życiu bywa, każdy kij ma dwa końce. I o ile ORM-y powstały, aby ułatwić pracę każdemu z nas, o tyle brak zrozumienia jak one dzi...
Bazy danych i XML 3119 dni, 19 godzin, 59 minut temu 479 źrodło rozwiń
Hej! często w systemach, które implementujemy zachodzi potrzeba aktualizacji jednej kolumny w bazie danych. Przykładowo, tabela Usermoże posiadać flagę IsLocked, która będzie informowała o tym, czy użytkownik jest zablokowany. Chcąc zaimplementować metodę blokującą delikwenta, część pomyśli o następującej implementacji: public async Task LockUserAsync(string id) { var context = new DbContext(); var user = context.Users.SingleOrDefault(u => u.Id == id); user.IsLocked = true; ...
0Posted on by Dariusz Pawlukiewicz Czołem, jeśli coś mogę powiedzieć o Wojskowej Akademii Technicznej to fakt, że poziom wymagany od studentów na przedmiocie Bazy danych był wysoki. Pisanie zapytań SQL na kartce z kilkoma klauzulami join, group by, select itd. to był dla mnie niepojęty kosmos. Sporo pojawiło się także teorii, którą później w mniej lub bardziej zgrabny sposób przytoczę. Kiedyś jednak natrafiłem na artykuł, który zahaczał o temat poziomów izolacji (ang. isolation level). Co to jest? Czy...
Bazy danych i XML 3145 dni, 2 godziny, 1 minutę temu 430 źrodło rozwiń
Szukając informacji do poprzednich wpisów o migracjach natknąłem się na informacje o scaffoldingu. Scaffolding w Entity Framework to proces odwrotny od migracji – na podstawie istniejącej bazy tworzona jest odpowiednia klasa z kontekstem i odpowiadające tabelkom – klasy encji.
Daj się poznać 2016 3151 dni, 1 godzinę, 37 minut temu 117 źrodło rozwiń
Solution how to mock Entity Framework context in code first approach
Sztuka programowania 3153 dni, 1 godzinę, 46 minut temu 100 źrodło rozwiń
Entity Framework. Code-first. Migrations. Opis konfiguracji w projekcie i ciekawy przypadek z rozwiązaniem problemu.
Daj się poznać 2016 3160 dni, 2 godziny, 24 minuty temu 248 źrodło rozwiń
Programowanie jest powtarzalne. Nic z tym nie da się zrobić. Można jednak to nieco uprościć i zrzucić część rzeczy na dostępne na rynku biblioteki.
Daj się poznać 2016 3165 dni, 20 godzin, 38 minut temu 168 źrodło rozwiń
Czasami tak projektujemy naszą aplikacje, że każdy model ma jedną lub kilka cech wspólnych. Od najbardziej oczywistych, jak na przykład ID, poprzez czas i datę utworzenia, modyfikacji, czy-usunięty, czy-opublikowany i inne czy-? W zależności od poziomu lenistwa cechy te definiowane i utrzymywane są w każdej z klas z osobna lub w jednym lub-lub w kilku interfejsach który jest implementowany przez modele.Do momentu pisania posta byłem gościem, który posiadał jeden wsp...
Bazy danych i XML 3166 dni, 14 godzin, 50 minut temu 158 źrodło rozwiń
Korzystając z Entity Frameworka warto zwracać uwagę na sposób pobierania danych. W przypadku, gdy nie będziemy ich modyfikować, a chcemy jedynie pobrać dane tylko do odczytu, przydatna okaże się metoda AsNoTracking(). Wywołanie metody skutkuje brakiem śledzenia danych przez kontekst. Dzięki temu nie marnujemy niepotrzebnie zasobów. Przyjrzyjmy się poniższemu przykładowi, w którym porównamy pobieranie danych z i bez metody AsNoTracking(). Na początek pobieramy dane standardowo. W tym celu modyfikujemy...
Daj się poznać 2016 3165 dni, 20 godzin, 38 minut temu 269 źrodło rozwiń