Question

Comment serait-il travailler dans SimpleReporitory de Subsonic si je voulais être en mesure d'avoir une relation 1 à plusieurs entre les objets?

Est-ce que je dois créer un objet pont, puis construire mon objet parent lors de l'exécution, ou est-ce support intégré?

Ce que je cherche est que vous avez choisi:

Exemple boutique Adam ...

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

les bits principaux:

        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)

Je pense que cela devrait créer 3 tables:

Commerces
employés
ShopsToEmployees (ou d'une autre convention de nommage)

Mais je reçois seulement une table de canaux!

Était-ce utile?

La solution

Je met à jour les choses SimpleRepo actuellement pour créer automatiquement des tables jointes basées sur des collections. Pas facile de déterminer plusieurs / plusieurs vs 1 / beaucoup - mais j'ai quelques idées.)

Autres conseils

Pour créer une relation un à plusieurs il vous suffit de créer le modèle d'objet, SubSonic devrait faire le reste pour vous par exemple.

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: Cela devrait générer deux tables lorsque vous exécutez une migration non 3. Les 3 trois tableaux que vous décrivez dans votre question représenterait une relation plusieurs à plusieurs. Aussi dans votre exemple, vous n'êtes pas enregistrer vos employés, SubSonic ne cascade sauve donc vous devrez enregistrer votre boutique puis ajoutez les employés à et BatchSave les employés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top