طبقة البيانات دون سرعة الصوت وترجع POCOs بدلا من الكائنات أكتيفيريكورد دون سرعة الصوت ل
-
19-08-2019 - |
سؤال
وأريد استخدام دون سرعة الصوت (2.2) في تطبيق أنا بناء لأنني أحب بساطته وأنه يتعامل مع أي نوع من الاستعلام يمكنني التنبؤ الحاجة. في نفس الوقت، أريد أن تبقي الطبقات العليا من طلبي من أنواع دون سرعة الصوت إلى جانب دي. أريد أن أعود فقط عادي قديم C # كائنات وأيضا تمرير في POCOs ليتم حفظها.
ولكن هنا في الصيد: أريد بلدي POCOs أن يكون كسلان خصائص تحميل لمجموعات الطفل والكائنات الأصل على أساس العلاقات FK. الرقم الأول تحتاج إلى وضع بطريقة أو بأخرى كائن SqlQuery دون سرعة الصوت في عضو خاص على بلدي POCO واستخدام ذلك داخليا في جالبة لخاصية تحميل كسول.
وأي أفكار حول كيفية تنفيذ هذا تحديدا دون سرعة الصوت؟ فعلت كل هذا من قبل؟
وأنا أدرك أن الإصدار الرئيسي التالي من دون سرعة الصوت سوف تفعل ذلك خارج مربع، ولكن أن يتطلع إلى أن يكون أتلست بضعة أشهر فقط.
المحلول 4
لا يمكن معرفة من أي وقت مضى وسيلة جيدة للقيام بذلك. دون سرعة الصوت 3 تتطلع لطيفة جدا ومن شأنه أن يحل المشكلة، ولكن في الوقت نفسه نحن فقط <لأ href = "https://stackoverflow.com/questions/508035/t4-template-for-nhibernate-not-fuent-nhibernate" > ذهبت مع NHibernate .
نصائح أخرى
وأنا استخدم RepositoryRecord في سرعة الصوت والتي هي "في الغالب" POCO. ثم أقوم جزئيات لتلك الفئات التي تحميل فئة أخرى عند تحديد الممتلكات.
Partial Public Class Book
Private _Author as Database.Author
Property Author() as Database.Author
Get
If _Author is nothing then
' Load the author class here.
End if
return _Author
End get
Set
....
End Set
End Property
End Class
ويمكنك استخدام السمة:
<اقتباس فقرة>وtableBaseClass = "RepositoryRecord"
اقتباس فقرة>وأخشى أنا لا أعرف كيف يعالج تحميل كسول بالرغم من ذلك. تستطيع أن ترى آخر روب Conery لأ > حول هذا الموضوع لمزيد من التفاصيل.
وما تريده هو ليس في الإصدار 2.X. كنت قد تكون قادرة على الحصول على أكثر من وسيلة هناك عن طريق تحرير قوالب (لدي أمثلة من خصائص تحميل كسول- على بلدي بلوق ). وثمة خيار آخر هو بناء pocos الخاص بك، ثم بناء فصول لتعيين من الطبقات والاستفسارات دون سرعة الصوت ولدت لالنموذج الخاص بك.