سؤال

قيمة الأشياء لا هوية له.اسندت يحتاج الهوية تحديث قاعدة البيانات الخاصة بنا.

كيفية خدعة ORM?

(وسم معرف قيمة الكائن الداخلية لن تعمل لأن ORM يعيش في مختلف الجمعية و نقلها إلى نفس الجمعية غير مقبول).

شكرا مقدما.

هل كانت مفيدة؟

المحلول

بقدر فهمي DDD يذهب قيمة الأشياء هي مجرد وسيلة لتقسيم الكيانات.إذا كانت قيمة الكائن يجب أن يتم تخزين مع معرف في قاعدة البيانات ليس قيمة الكائن.

على سبيل المثال:

المجال نموذج يشبه هذا (C#):

public class Customer : Entity
{
    public Guid CustomerID { get; }

    public string LastName { get; set; }

    public Address HomeAddress { get; set; }
}

public class Address : ValueObject
{
    public string Street { get; set; }

    public string City { get; set; }

    public string ZipCode { get; set; }
}

المقابلة جدول قاعدة البيانات سوف ننظر بشيء من هذا القبيل (الزائفة-SQL):

CREATE TABLE Customers
(
    CustomerID,

    LastName,

    HomeAddress_Street,

    HomeAddress_City,

    HomeAddress_ZipCode,
)

لتخزين عناوين منفصلة الجدول سوف تجعل كيان غير معرف.

نصائح أخرى

عندما يتحدث إريك إيفانز عن "الكيانات لديها هوية، لا تتحدث كائنات القيمة"، فهو لا يتحدث عن عمود معرف في قاعدة البيانات - يتحدث عن الهوية مفهوم.

VOS ليس له المفاهيمي هوية. هذا لا يعني أنه لا ينبغي أن يكون إصرار هوية. لا تدع تنفيذ الثبات سحابة فهمك للكيانات مقابل VOS.

انظر رسالتي هنا.

أنا شخصيا لدي حقل معرف في كائن القيمة - أتعامل معها كسمية أخرى لكائن القيمة (مثل الاسم والموقع وما إلى ذلك).

قد لا يكون DDD حقيقي لكنه يعمل بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top