Pergunta

Como funcionaria no FleleReporomy da subsônica se eu quisesse ter um 1 a muitos relacionamentos entre objetos?

Eu teria que criar um objeto Bridge e, em seguida, criar meu objeto pai em tempo de execução, ou esse suporte é incorporado?

O que estou procurando é o seguinte:

Exemplo de Adam 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

Bits principais:

        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)

Eu acho que isso deve criar 3 tabelas:

Lojas
Funcionários
ShopSoemployees (ou alguma outra convenção de nomenclatura)

Mas eu só recebo uma tabela de canais!

Foi útil?

Solução

Atualmente, estou atualizando as coisas do FleleRepo para criar tabelas unidas automaticamente com base nas coleções. Não é fácil determinar muitos/muitos vs 1/muitos - mas tenho algumas idéias :).

Outras dicas

Para criar um para muitos relacionamentos que você só precisa criar o modelo de objeto, o subsônico deve fazer o resto para você, por exemplo,

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: Isso deve gerar duas tabelas quando você executar uma migração e não 3. As três mesas que você descreve em sua pergunta representaria muitos para muitos relacionamentos. Além disso, no seu exemplo, você não está salvando seus funcionários, o Subsonic não faz defesas em cascata; portanto, você precisará salvar sua loja e adicionar os funcionários a ele e o lote dos funcionários.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top