में वैश्विक खोज ऑब्जेक्ट संदर्भ एनएचबीरनेट-प्रबंधित ऑब्जेक्ट्स पर वैश्विक उलटा-खोज करना संभव है?NHibernate
विशेष रूप से, मेरे पास "आईओ" नामक एक सतत कक्षा है। कई तालिकाओं में बड़ी संख्या में फ़ील्ड हैं जो संभावित रूप से उस प्रकार की वस्तु को शामिल कर सकते हैं। ऑब्जेक्ट्स (किसी भी प्रकार के) की एक सूची पुनर्प्राप्त करने के लिए वास्तव में उस विशिष्ट वस्तु का संदर्भ देने के लिए कोई तरीका है (आईओ ऑब्जेक्ट का एक विशिष्ट उदाहरण दिया गया है)? (बोनस पॉइंट्स यदि यह पहचान सकता है कि कौन से विशिष्ट फ़ील्ड में वास्तव में संदर्भ है, लेकिन यह महत्वपूर्ण नहीं है।)
चूंकि एनएचबर्ननेट मैपिंग सभी लिंक को परिभाषित करता है (और अंतर्निहित डेटाबेस के पास विदेशी कुंजी लिंक हैं), होना चाहिए कुछ इसे करने का तरीका।
संरचना इस तरह की कल्पना कीजिए:
class Io
{
public int Id { get; set; }
// other fields specific to the Io type
}
class ThingOne
{
public int Id { get; set; }
public Io SensorInput { get; set; }
public Io SolenoidOutput { get; set; }
// other stuff
}
class ThingTwo
{
public int Id { get; set; }
public Io SensorInput1 { get; set; }
public Io SensorInput2 { get; set; }
public SubThing Doohickey { get; set; }
// ...
}
class SubThing
{
public int Id { get; set; }
public Io ControlOutput1 { get; set; }
// ...
}
आईओ का एक विशिष्ट उदाहरण को देखते हुए, मैं खोज के लिए है कि यह आईडी 12. साथ ThingTwo द्वारा संदर्भित है चाहते हैं या यह कि द्वारा और भी साथ ThingOne द्वारा संदर्भित है कि आईडी 16. यदि संभव हो, तो पहला संदर्भ सेंसर इनपुट 2 के माध्यम से है, उदाहरण के लिए।
पहले इसने मुझे कुछ परेशानी दी, लेकिन यह मेरे एचबीएम मैपिंग में एक त्रुटि साबित हुई। परिणाम को एक सूची में फटकारने के बाद, यह वही करता है जो मैं बाद में था। धन्यवाद! – Miral
यह बहुत अच्छा है लेकिन किसी को ** toSearch.GetType() ** के बारे में पता होना चाहिए। यह वास्तविक के बजाय प्रॉक्सी ऑब्जेक्ट वापस कर सकता है। –
@ एसएम.एमिन आप लोड() के साथ Get() मिश्रण कर रहे हैं।प्राप्त करें() प्रॉक्सी वापस नहीं करेगा, लोड() – Jaguar