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!

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top