SimpleRepositoryで親と子オブジェクト
-
21-09-2019 - |
質問
私は、オブジェクト間の多くの関係に1を持ってできるようにしたい場合は、
どのように亜音速のSimpleReporitoryに働くだろう?
でしょう私は、ブリッジオブジェクトを作成し、実行時に、私の親オブジェクトを構築する必要があり、または?
に建てられたこのサポートです私は何を探していますがfolowingされます:
アダムの例ショップ...
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のものを更新しています。容易ではない多くの/多くの多く/ 1対を決定するために - しかし、私はいくつかのアイデアを持っている:。)
他のヒント
あなただけのオブジェクト・モデルを作成する必要があり、多くの関係を作成するには、亜音速があなた例えばのための残りを行う必要があります。
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:あなたは、あなたの質問に記述していない3 3つの3つのテーブルは、多くの関係に多くを表すことになり、マイグレーションを実行したときに、この2つのテーブルを生成する必要があります。また、あなたの例では、あなたの従業員を保存していない、亜音速カスケードは、あなたのショップが、それとBatchSave従業員に従業員を追加保存する必要がありますので、保存しません。
所属していません StackOverflow