Witam,
Tworzę proste API w .NET 5 gdzie używam używam ORM'a EF Core i dostawcę bazy danych SQL Server. Natknąłem się na problem z identyfikacją zasobów, a mianowicie gdy tworzę jakiś zasób np. Produkt to SQL Server tworzy klucz główny po swojej stronie. Nawet jeśli generuję Guid w aplikacji to jest on inny niż ten zapisany w bazie ze względu na ustawienia SQL Servera. Chciałbym po utworzeniu zasobu zwrócić w odpowiedzi utworzony obiekt wraz z identyfikatorem. Mam w związku z tym kilka pytań:
- Czy powinienem w ogóle zwracać obiekt po utworzeniu - czy to jest dobra praktyka?
- Czy powinienem posługiwać się id z bazy danych do identyfikacji zasobów? - Jeśli nie to jak identyfikować zasób?
- Istnieje możliwość włączenia jawnego podawania identyfikatorów podczas trwania transakcji. Czy jest to dobra praktyka? Jeśli tak to czy nie lepiej jest użyć tej funkcji na poziomie całej bazy, a nie tylko przy dodawaniu nowej instancji encji?