如何会在亚音速的SimpleReporitory工作,如果我希望能够有对象之间的1对多的关系?

我将不得不建立一个桥梁对象,然后在运行时建立我的父对象,或者是这种支持内置的?

我所寻找的是如下因素:

亚当的实施例商店...

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

主要位:

        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)

我认为这应该创建3个表:

商店,点击 员工点击 ShopsToEmployees(或一些其它命名约定)

但我只得到一个频道表!

有帮助吗?

解决方案

我目前更新SimpleRepo东西来自动创建基于集合连接的表。不容易确定多/多VS 1 /许多 - 但我有一些想法:)

其他提示

要创建一个一对多的关系,你只需要创建对象模型,亚音速应该为你e.g做休息。

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; }
}

编辑:这应该生成两个表,当您运行迁移不3.您在您的问题描述3个三个表将是一个多对多的关系。另外,在你的榜样你不保存您的员工,亚音速不级联保存,所以你需要保存你的店铺,则员工添加到它和BatchSave雇员。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top