Hejka mam pytanie. Piszę test jednostkowy w xunity handlera, który usuwa rekord zmieniając status.Jak mam zrobić mocka dbcontext aby przetestować handler z metodą Attach(), ponieważ obecnie dla mocka ctx zwraca nulla. Natomiast jak zrobię ctx.Departments.Find() to zwraca poprawny rekord i potem mogę użyć Remove.

var depState = ctx.Departments.Attach(dep);
depState.State = EntityState.Deleted;
ctx.SaveChangesAsync

#dotnet #csharp #programowanie #entityframework
@smalczyk1: to co testujesz powinno być testem integracyjnym aplikacja - baza na działającej infrastrukturze. Testowanie tego mockując zależność od DB boli na co sam zwracasz uwagę - jakieś to takie, dziwne, trudne, nienaturalne.
Twój test tak naprawdę nie daje Ci żadnej pewności, że twój kod dobrze działa.
1. Sprawdzasz czy Attach działa? Do tego testy napisali twórcy EFa.
2. Sprawdzasz czy można przypisać "Deleted" do State? Jak wyżej.
3. Sprawdzasz czy
@smalczyk1: W skrócie, na podstawie tego co napisałeś, wydaje się że wystarczy Ci jeden test integracyjny gdzie usuniesz jakiś konkretny resource i w tym samym teście sprawdzisz że go już tam nie ma (i zrobisz to wołając swoją działającą aplikację, która gada do działającej bazy danych).
Test integracyjny pokryje Ci działanie handlera i komunikację aplikacja-baza w tym konkretnym przypadku.

W bardzo wielkim skrócie:
1. unit testy najlepiej nadają się do sprawdzania
To akurat repository pattern, walidacja (nie ma osobnego dewelopera, który się nią zajmuje) tego guid odbywa sie w innym miejscu

public void CreateTruckForCoworker(Guid coworkerId, Truck truck)
{
truck.CoworkerId = coworkerId;
Create(truck);
}
Szybkie pytanko dla expertów #csharp
EF Core 6.0.8, mariadb najnowsza.

1. Jak ustawić żeby nazwy tabel były bez końcówki "s" tylko tak jak jest nazwana klasa np. Car to w bazie Car a nie Cars.
Z tego co rozumiem mogę ustawić ręcznie dla każdej tabeli ale czy jest jakiś sposób w której ustawianie to dla wszystkich na raz?

2. Z tego co widzę nie mogę ustawić nazw bazy i tabel typu JakasNazwa
@Fallinghammer: dzięki, styl z _ i małymi literami rozwiazuje sprawę, nie ma co drążyć tematu,

A jeszcze jedno,
mam 2 pola DateTime i ustawiam jendmu wartość DataTime.UtcNow a drugiemu DateTime.Now i zapisuje encje do bazy.
Uruchamiam HediSQL i widzę, że mam przesunięcie 2 godziny do tyłu w kolumnie w której zapisałem UtcNow.

Chciałbym móc w programie pracować tylko na UTC i żeby ef core sobie to zamieniał przynajmniej przy zapisie poprawnie.
@MarcelFerry:
A może w ten sposób? Jeżeli nie chcesz udostępniać wszystkich pól w konstruktorze lub/i setterach to można zrobić builder jako nested class.

public static IQueryable WithoutByteArray(this IQueryable source)
=> source.Select(b => new Book
{
Id = b.Id,
Name = b.Name,
//...
});
Humble Bundle z książkami wydawnictwa Apress. Głównie o technologiach związanych z .NET, ML.NET, Cpłotek, TypeScript, Azure, Github.

26 książek za £14!

Pełna lista:

Practical Entity Framework Core 6

.NET Developers Guide to Augmented Reality in iOS

Lean Software Systems Engineering for Developers

Pro Cryptography and Cryptanalysis

Introducing Distributed Application Runtime (Dapr)

Pro ASP.NET Core Identity

ML.NET Revealed

Visual Studio Code Distilled

The Complete ASP.NET Core API Tutorial

Introducing .NET 6

Building Single
@grap32: NHibernate widziałem tylko w starych projektach które mają powyżej 10 lat. Ef Core jest standardem. Można jeszcze brać pod uwagę dapper ale to jest mikro orm.
@vanguard2727: Możesz pominąć. Na rozmowie kwalifikacyjnej Cię mogą zapytać o to i wystarczy, że będziesz kojarzył temat.

Jeśli chodzi o performance EF, to ważniejsze na początek jest np wiedzieć, kiedy używasz Lazy Loadingu vs Eager loading, co robi AsNoTracking,, jak zrobić BulkInsert
@PortowySzczur: Coś takiego zadziałało, utworzylo dwie kolumny FromId oraz ToId

internal class Table
{
public Guid ID { get; private set; }
}

internal class TableWorkflow
{
public Table From { get; private set; }
public Table To { get; private set; }
}

internal class TableWorkflow
{
public Table From { get; private set; }
public Guid FromId { get; private set; }
public Table To { get; private set;
Mam bazę w PostgreSQL. Instaluję drivery przez nuget i plugin do integracji z Visual studio.
Tworzę plik edmx przez database first z istniejącej bazy danych. Wszystko fajnie działa.
W PostgreSQL nazywam kolumny: nazwakolumny np. userid.

1. Czy da się jakoś zrobić żeby automatycznie nawet przy aktualizacji edmx została ustawiona nazwa UserId w c# a w bazie zostało user_id? Mogę ręcznie zrobić to przez fluentApi ale chciałbym uniknąć tego.

2. Plugin
⛔ Szkoła Entity Framework Core – dzisiaj o 22:00 zamykamy zapisy.

Jeżeli chcesz:
✅ Poznać Entity Framework Core od podszewki.
✅ Poznać architekturę EF Core + ASP.NET Core.
✅ Pisać szybkie zapytania na bazie danych.
✅ Pisać szybko działające aplikacje.
✅ Poznać najlepsze praktyki współpracy z jednym z najbardziej popularnych frameworków w C# na platformie .NET.
✅ Uczyć się pod okiem mentora.
✅ Mieć dostęp do wszystkich popularnych błędów związanych z EF
kazik- - ⛔ Szkoła Entity Framework Core – dzisiaj o 22:00 zamykamy zapisy.

Jeżeli ...

źródło: comment_1635487858BCHV2PuxX0BBcQZeRV4ynt.jpg

Pobierz
Hej,
w jakis sposob aktualizujecie DBmodels w Waszych apkach?
Mam lokalna baze, po zmianach robie w bashu:

dotnet ef dbcontext scaffold --use-database-names "server=localhost\SQLEXPRESS;Initial Catalog=XXX;Integrated Security=True;" Microsoft.EntityFrameworkCore.SqlServer -o DBModels -t nazwaTabeli1 -t nazwaTabeli2 -t nazwaTabeli3 -f

I przy dodaniu kazdej tabeli dopisuje i wrzucam kolejny wpis -t nazwaTabeli4. Wydaje mi sie to dość miałkie. Jak to ogarnac?

Pzdr
#programowanie #programista15k #dotnet #dotnetcore #entityframework
@inrain88: Tak jak napisali koledzy wyżej, code-first i migracje.
Początkowo mieliśmy database first, ale w momencie gdy projekt i model się mocno rozrosły to nieprzewidywalne zachowanie plików .edmx (szczególnie przy mergowaniu branchy) stało się mocno uciążliwe i przeszliśmy na code-first.
Cześć!

Właśnie opublikowałem nowy odcinek na youtube, w którym przybliżę temat testów automatycznych dla Programistów C#. Dowiesz się czym są testy automatyczne, jakie są rodzaje testów automatycznych, jakie są ich wady i zalety oraz jak pisać je w C#.

Link: https://www.youtube.com/watch?v=xWOsOtvVsxg

Oprócz tego, jeżeli interesuje Cię temat Entity Framework Core, to zapraszam do zapoznania się z Szkołą Entity Framework Core – w piątek o 21:00 zamykamy zapisy do edycji VIP

Szkoła Enity
kazik- - Cześć! 

Właśnie opublikowałem nowy odcinek na youtube, w którym przybliżę...

źródło: comment_1627566624QNDVgv5nvALLgGKoi79w8A.jpg

Pobierz
@grap32: to sa właśnie mikroserwisy.

Często są też ogromne bazy danych dla wielu serwisów (np. agregujące najważniejsze dane), ale raczej nie stosuje się bezpośredniego 'dojscia' do samej bazy, a udostępnia wybrane dane przez jakieś API.
5 NAJCZĘSTSZYCH BŁĘDÓW w Entity Framework Core

Cześć! Jest już nowy odcinek na kanale modestprogrammer na youtube. Z tego odcinka dowiesz się jakie są najpopularniejsze błędy początkujących programistów przy pracy z Entity Framework Core w C#. Przedstawię Ci 5 najczęstszych błędów na które musisz uważać. Miłego oglądania

Link: https://www.youtube.com/watch?v=6r2S3XhGVl8

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #entityframework
kazik- - 5 NAJCZĘSTSZYCH BŁĘDÓW w Entity Framework Core

Cześć! Jest już nowy odcin...

źródło: comment_16271926566xokLL00CgnqHOe7OVXBi8.jpg

Pobierz
5 NAJLEPSZYCH PRAKTYK z Entity Framework Core

Cześć! Jest już nowy odcinek na kanale modestprogrammer na youtube. W tym odcinku przedstawię Ci 5 moim zdaniem najlepszych praktyk, o których musisz pamiętać współpracując z Entity Framework Core w C#. Miłego oglądania

Link: https://www.youtube.com/watch?v=#!$%@?

#programowanie #programista #nauka #naukaprogramowania #programista15k #csharp #dotnet #entityframework
kazik- - 5 NAJLEPSZYCH PRAKTYK z Entity Framework Core

Cześć! Jest już nowy odcine...

źródło: comment_1627192380HClefln10lrJ2iXStrMLb5.jpg

Pobierz