Pregunta

¿Cómo funcionaría en SimpleReporitory de subsónico si quería ser capaz de tener una relación de muchos a 1 entre los objetos?

¿Tendría que crear un objeto de puente y luego construir mi objeto padre en tiempo de ejecución, o se trata de apoyo construida en?

Lo que estoy buscando es el folowing:

Ejemplo de Adán Shop ...

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

pedacitos principales:

        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)

Creo que esto debería crear 3 tablas:

Tiendas
Los empleados
ShopsToEmployees (o alguna otra convención de nomenclatura)

Pero solo me dan una mesa Canales!

¿Fue útil?

Solución

Estoy actualizando las cosas SimpleRepo actualmente para crear automáticamente tablas combinadas en base a las colecciones. No es fácil determinar que muchos / muchas vs 1 / muchos - pero tengo algunas ideas:.)

Otros consejos

Para crear una relación de uno a muchos sólo hay que crear el modelo de objetos, SubSonic debe hacer el resto para usted por ejemplo.

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: Esto debe generar dos tablas cuando se ejecuta una migración no 3. Los 3 tres mesas que usted describe en su pregunta representarían una relación muchos a muchos. También en el ejemplo, usted no está ahorrando sus empleados, SubSonic no ahorra en cascada por lo que necesita para salvar su tienda a continuación, añadir los empleados a la misma y BatchSave los empleados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top