كائن الوالد والطفل في SimplerePository
-
21-09-2019 - |
سؤال
كيف ستعمل في Subsist Simplemority إذا أردت أن أكون قادرًا على الحصول على العلاقة بين الكائنات 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 جداول:
محلات
الموظفين
موظفو المتاجر (أو بعض اتفاقية التسمية الأخرى)
لكنني فقط أحصل على جدول القنوات!
المحلول
أقوم بتحديث الأشياء SimplerePo حاليًا لإنشاء الجداول المرتبطة تلقائيًا بناءً على المجموعات. ليس من السهل تحديد العديد من/العديد منها مقابل 1/كثير - لكن لدي بعض الأفكار :).
نصائح أخرى
لإنشاء واحدة للعديد من العلاقة التي لديك فقط لإنشاء نموذج الكائن ، يجب على Subsic القيام بالباقي من أجلك على سبيل المثال
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. الجداول الثلاثة الثلاثة التي تصفها في سؤالك سوف تمثل الكثير للعديد من العلاقات. أيضًا في مثالك ، أنت لا تنقذ موظفيك ، لا يحفظ Subsic Sund ، لذا ستحتاج إلى إنقاذ متجرك ثم إضافة الموظفين إليه و Patchsave الموظفين.