Capogruppo e oggetto Bambino in SimpleRepository
-
21-09-2019 - |
Domanda
Come funzionerebbe in SimpleReporitory di Subsonic se volevo essere in grado di avere una relazione molti a 1 tra gli oggetti?
ho voluto creare un oggetto ponte e poi costruire il mio oggetto principale in fase di esecuzione, o è questo supporto costruito nel?
Quello che sto cercando è la folowing:
di Adam esempio negozio ...
Public Class Shop Private m_id As Integer Private m_Name As String Private m_Employees As List(Of Employee) Public Property Id() As Integer Get Return m_id End Get Set(ByVal value As Integer) m_id = value End Set End Property Public Property Name() As String Get Return m_Name End Get Set(ByVal value As String) m_Name = value End Set End Property Public Property Employees() As List(Of Employee) Get Return m_Employees End Get Set(ByVal value As List(Of Employee)) m_Employees = value End Set End Property End Class Public Class Employee Private m_id As Integer Private m_Name As String Public Property Id() As Integer Get Return m_id End Get Set(ByVal value As Integer) m_id = value End Set End Property Public Property Name() As String Get Return m_Name End Get Set(ByVal value As String) m_Name = value End Set End Property End Class
bit principali:
Dim repo As New SimpleRepository("SubSonicObjectTest", SimpleRepositoryOptions.RunMigrations) Dim emplyee1 As New Employee emplyee1.Name = "Martin" Dim emplyee2 As New Employee emplyee2.Name = "Adam" Dim shop As New Shop shop.Name = "Sub Sonic Store" shop.Employees = New List(Of Employee) shop.Employees.Add(emplyee1) shop.Employees.Add(emplyee2) repo.Add(Of Shop)(shop)
Credo che questo dovrebbe creare 3 tabelle:
Negozi
I dipendenti
ShopsToEmployees (o qualche altra convenzione di denominazione)
Ma io ho soltanto un tavolo Canali!
Soluzione
sto aggiornando la roba SimpleRepo attualmente per creare automaticamente tabelle unite sulla base di collezioni. Non è facile da determinare molti / molte vs 1 / molti - ma ho alcune idee:.)
Altri suggerimenti
Per creare un uno a molti è sufficiente per creare il modello a oggetti, SubSonic dovrebbe fare il resto per voi per esempio.
public class Shop
{
public int Id { get; set; }
public String Name { get; set; }
public List<Employee> Employees { get; set; }
}
public class Employee
{
public int Id { get; set; }
public String Name { get; set; }
}
EDIT: Questo dovrebbe generare due tabelle quando si esegue una migrazione non 3. I 3 tre tavoli che descrivi nella tua domanda rappresenterebbero una relazione molti a molti. Anche nel tuo esempio non sta salvando i vostri dipendenti, SubSonic non a cascata consente di risparmiare in modo avrete bisogno di salvare il negozio quindi aggiungere i dipendenti ad esso e BatchSave dipendenti.