supponiamo che abbiamo una classe che è simile alla seguente:Come mantenere un elenco di stringhe con Entity Framework Core?
public class Entity
{
public IList<string> SomeListOfValues { get; set; }
// Other code
}
Ora, supponiamo di voler persistere questo utilizzando EF Nucleo codice prima e che stiamo utilizzando un RDMBS come SQL Server.
Un possibile approccio è ovviamente quello di creare una classe wraper Wraper
che avvolge la stringa:
public class Wraper
{
public int Id { get; set; }
public string Value { get; set; }
}
E di refactoring la classe in modo che ora dipende da un elenco di oggetti Wraper
. In quel caso EF genererebbe una tabella per Entity
, una tabella per Wraper
e stabilirà una relazione "uno a molti": per ogni entità c'è un gruppo di wrapers.
Anche se questo funziona, non mi piace l'approccio perché stiamo cambiando un modello molto semplice a causa di preoccupazioni di persistenza. In effetti, pensando solo al modello di dominio e al codice, senza la persistenza, la classe Wraper
non ha molto senso.
C'è un altro modo per mantenere un'entità con un elenco di stringhe su un RDBMS utilizzando il codice EF Core Prima di creare una classe wrapper? Naturalmente, alla fine, bisogna fare la stessa cosa: bisogna creare un altro tavolo per tenere le corde e una relazione "da uno a molti" deve essere in atto. Voglio solo farlo con EF Core senza dover codificare la classe wraper nel modello di dominio.
Questo è uno dei più manca di EF di tutti i tempi, che è stato sempre coperto da NHibernate: tipi di utente ......... –