में विभिन्न तालिकाओं के आधार पर मूल्य निर्धारित करना मैं एनएचबर्ननेट का उपयोग कर रहा हूं, और इस क्वेरी के साथ समस्याएं हैं ... मेरे पास एक क्लास आइटम है जिसे मैं अपने आईडी का उपयोग करना चाहता हूं। सब ठीक। हालांकि, मैं कुछ अन्य शर्त निर्धारित होने पर भी आइटम वर्ग पर एक बूल संपत्ति को सत्य पर सेट करना चाहता हूं। विशेष रूप से इस संपत्ति का नाम IsMarked है, यह बताता है कि आइटम को चिह्नित करने वाले उपयोगकर्ता के लिए चिह्नित/डर/ध्वजांकित किया गया है, और यह जानकारी आइटम और उपयोगकर्ता के बीच संबंध देने वाली तालिका पर सेट की गई है।NHibernate क्वेरी
वर्तमान में मैं आइटम ला रहा हूं, और उसके बाद संदर्भ ढूंढ रहा हूं - यदि संदर्भ पाया जा सकता है तो संपत्ति को सत्य में अपडेट करना। क्या मैं इसे एक प्रश्न में कर सकता हूं?
var item = Session.Get<Item>(itemId);
var flaggedResult = Session.CreateCriteria<ItemWithUserFlag>()
.Add(Restrictions.Eq("User.Id", userId))
.Add(Restrictions.Eq("Item", item))
.List<ItemWithUserFlag>();
if (flaggedResult.Count > 0)
item.IsMarked = true;
return item;
अपनी कक्षाओं कैसे मैप की जाती हैं? क्या उपयोगकर्ता और आइटम के बीच कई से अधिक रिलीज हैं? –
मै मैपिंग के लिए फ्लुएंट का उपयोग कर रहा हूं। एक अलग वर्ग ItemWithUserFlag में प्रतिनिधित्व करने वाले कई से अधिक संबंध हैं। उपयोगकर्ता के पास आइटम से सीधा संबंध नहीं है, और आइटम के पास उपयोगकर्ता से सीधा संबंध नहीं है। ItemWithUserFlag में उपयोगकर्ता और आइटम पर एक संदर्भ सेट है। – stiank81