Come avvolgere correttamente il mio livello dati per comunicare con la logica aziendale

0

Ho uno strato di dati EF Core e voglio avvolgerlo attorno a un'interfaccia per separarlo dalla logica di business. Ora il problema è che non sono sicuro di farlo correttamente. In primo luogo, stavo usando il contesto statico per essere sempre vivo, ma a me sembra sbagliato.

Dovrei creare una nuova istanza di contesto per ogni richiesta? Quindi penso che causerebbe problemi con il tracciamento delle entità e le modifiche apportate non salveranno quando si chiama SaveChanges. Dovrei persino restituire un oggetto entità EF o solo un oggetto modello per non esporre i dati relativi al database

Tldr: ho solo bisogno di una certa direzione su come avvolgere correttamente il mio livello di dati EF Core

    
posta Aviv Biton 20.08.2018 - 05:36
fonte

1 risposta

0

Utilizza il modello di repository

public class MyRepo : IMyRepo
{
    public MyRepo(string connectionString) {
        ... instantiate DB context
    }
    public MyObject GetObjectById(string id) {
        ...EF stuff goes in here
    }

    ... more methods that return business objects
}

Iniettare tramite un framework DI nell'app. Utilizza il contesto Singleton o per richiesta come appropriato

    
risposta data 20.08.2018 - 10:33
fonte

Leggi altre domande sui tag