Jak zrozumieć wartstwy w aplikacji i to, co się ma dziać w której? W
Załóżmy ze mam w aplikacji projekty (odpowiadajace warstwom)
- Core
- Application
- Infrastructure
- UI
Już na samym początku pojawiły mi sie wątpliwości, bo np w projekcie Core definiuije sobie klase
public class Employee
{
public string Name{get;set;}
public int Age {get;set;}
}
Chciałbym to zapisać do bazy. Do tego bedzie uzyty projekt Infrastructure, który w referencji ma projekt Core. Jako ORM używam EF Core. No ale pytanie, gdzie się ma odbyć ten zapis? W Core czy w Infrastructure, no i jak to ma wyglądać?
Według tego co czytałem, nie moge przekazać do projketu Core referencji do Infrastructure (bo to Infrastructure ma mieć referencje do projketu Core). Myślałem nad zrobieniem i korzystaniem w projekcie Core interfejsu:
public interface IWorkDbContext
{
DbSet<Employee> Employees{get;set;}
Task<int> SaveChangesAsync(CancellationToken cancellationToken);
}
i wtedy ten interfejs implementowałby też mój DbContext w projekcie Infrastructure
public class WorkDbContext : DbContext, IWorkDbContext
{
//...
}
no, ale chciałem zrobić projekt database first i w bazie kolumny mają inne nazwy niż w encji Employee (i chce zeby tak zostało).
Jak to wsyzstko dobrze poustawić? Może nakierujecie mnie na jakiś przykładowy projekt.
Chciałem pisać aplikacje WPF ale wszsytkie przykłady jakie znajduje sa dla web i nie mogę tego przełożyć na swój problem.