Los padres y el objeto Niño en SimpleRepository
-
21-09-2019 - |
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!
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.