Родительский и дочерний объект в SimpleRepository
Как бы это работало в SimpleReporitory Subsonic, если бы я хотел иметь возможность связи между объектами 1: 1?
Должен ли я создать объект-мост и затем построить родительский объект во время выполнения, или эта поддержка встроена?
Что я ищу, так это следующее:
Пример магазина Адама...
Public Class Shop Private m_id As Integer Приватный m_Name As String Private m_Employees As List (Сотрудник) Public Property Id () как целое число Получить Возврат m_id Конец получить Установить (значение ByVal как целое число) m_id = значение Конец набора Конечная недвижимость Имя публичного свойства () As String Получить Возврат m_Name Конец получить Set (значение ByVal As String) m_Name = значение Конец набора Конечная недвижимость Государственная собственность Сотрудники () в виде списка (сотрудника) Получить Вернуться m_Employees Конец получить Set (значение ByVal как список (Of Employee)) m_Employees = значение Конец набора Конечная недвижимость Конечный класс Сотрудник общественного класса Private m_id As Integer Приватный m_Name As String Public Property Id () как целое число Получить Возврат m_id Конец получить Установить (значение ByVal как целое число) m_id = значение Конец набора Конечная недвижимость Имя публичного свойства () As String Получить Возврат m_Name Конец получить Set (значение ByVal As String) m_Name = значение Конец набора Конечная недвижимость Конечный класс
Основные биты:
Дим репо как новый SimpleRepository ("SubSonicObjectTest", SimpleRepositoryOptions.RunMigrations) Dim emplyee1 как новый сотрудник emplyee1.Name = "Мартин" Dim emplyee2 как новый сотрудник emplyee2.Name = "Адам" Тусклый магазин As New Shop shop.Name = "Sub Sonic Store" shop.Employees = Новый список (сотрудника) shop.Employees.Add (emplyee1) shop.Employees.Add (emplyee2) repo.Add (Of Shop) (магазин)
Я думаю, что это должно создать 3 таблицы:
Магазины
Сотрудники
ShopsToEmployees (или другое соглашение об именах)
Но я получаю только таблицу каналов!
2 ответа
В настоящее время я обновляю материал SimpleRepo, чтобы автоматически создавать объединенные таблицы на основе коллекций. Не легко определить много / много против 1/ много - но у меня есть некоторые идеи:).
Чтобы создать отношение один ко многим, вам просто нужно создать объектную модель, SubSonic должна сделать все остальное за вас, например
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. Три таблицы, которые вы описываете в своем вопросе, будут представлять отношения многие ко многим. Кроме того, в вашем примере вы не сохраняете своих сотрудников, SubSonic не осуществляет каскадное сохранение, поэтому вам нужно сохранить ваш магазин, затем добавить в него сотрудников и выполнить пакетное сохранение сотрудников.