hasmany nhibernate عندما لا تستخدم مفتاح خارجي
-
05-07-2019 - |
سؤال
ودعونا نقول لدي جدول الطلب، التي تبدو كما يلي:
RequestId INT
ReferenceNumber VARCHAR
ويتم تسجيل كل طلب في جدول requestlog. لا توجد مفاتيح خارجية بين الجداول:
RequestLogId INT
ReferenceNumber VARCHAR
Content VARCHAR
ووrequestlog يحتوي على مضمون الطلب، ويحتاج هذا المحتوى ليتم تخزينها لفترة من الزمن. يمكن حذف الطلب، ولكن لا يمكن إلا أن يتم حذف السجل بعد فترة من الزمن.
وكيف يمكنني خريطة بلدي وجوه الطلب بحيث يمكن أن تحتوي على قائمة requestlogs، استنادا إلى referencenumber؟
وحاولت هذه:
Table("InsuranceRequest");
Id(i => i.Id).Column("InsuranceRequestId");
Map(i => i.ReferenceNumber);
HasMany(i => i.InsuranceRequestLog).KeyColumn("RefenceNumber").LazyLoad.Cascade.None();
وأنها لا تعمل على الرغم من. يحاول هذا التعيين لتعيين referencenumber إلى RequestLogId من requestlog. هل هناك طريقة لتحديد أن العمود الانضمام يجب أن يكون referencenumber insurancerequestlog؟
المحلول
لا شيء يمنع الكثير للكثيرين في بنية الجدول الخاص بك .. أوصي إلى تغيير هيكل وجعلها المفاتيح الخارجية، وأنا متأكد من أن الكثيرين إلى العديد من الخرائط سيعمل لأجلك .. إذا التعيين أنا لا تعمل بعد تغيير هيكل.
وطرف آخر لأجلك: اتخاذ ديسيبل فارغة ومحاولة فضح المخطط .. من يكون ش سوف قادرا على رؤية ما يفكر nhibernate الهيكل يجب أن تبدو