मैं एक प्रश्न है कि NHibernate LINQ 2.1.2 में काम करता था, लेकिन यह NH3 साथ NotSupportedException फेंक जाता है:NHibernate 3 LINQ भीतरी में शामिल होने के तीन छलांग के साथ इस मुद्दे: NotSupportedException
IQueryable<Tree> query = from flower in GetSession().Query<Flower>()
from leaf in flower.Stem.Leaves // <--- the problem is here with three jumps
where leaf.Color == Green
select flower;
संबंधों की तरह हैं:
- फूल संदर्भ स्टेम
- स्टेम HasMany फूल
- पत्ता संदर्भ स्टेम
- स्टेम हैसनी पत्तियां
अपवाद को एनएचबर्ननेट में लाइन 204 से फेंक दिया गया है। लिंक्स। विज़िटर .QueryModelVisitor। कि धागा स्टीफन कहा गया है कि वाक्य रचना समर्थित नहीं है के तहत
:
public override void VisitAdditionalFromClause(AdditionalFromClause fromClause, QueryModel queryModel, int index)
{
if (fromClause is LeftJoinClause)
{
// It's a left join
_hqlTree.AddFromClause(_hqlTree.TreeBuilder.LeftJoin(
HqlGeneratorExpressionTreeVisitor.Visit(fromClause.FromExpression, VisitorParameters).AsExpression(),
_hqlTree.TreeBuilder.Alias(fromClause.ItemName)));
}
else if (fromClause.FromExpression is MemberExpression)
{
var member = (MemberExpression) fromClause.FromExpression;
if (member.Expression is QuerySourceReferenceExpression)
{
// It's a join
_hqlTree.AddFromClause(_hqlTree.TreeBuilder.Join(
HqlGeneratorExpressionTreeVisitor.Visit(fromClause.FromExpression, VisitorParameters).AsExpression(),
_hqlTree.TreeBuilder.Alias(fromClause.ItemName)));
}
else
{
// What's this?
throw new NotSupportedException(); // <--------- LINE 204
}
}
else
{
// TODO - exact same code as in MainFromClause; refactor this out
_hqlTree.AddFromClause(_hqlTree.TreeBuilder.Range(
HqlGeneratorExpressionTreeVisitor.Visit(fromClause.FromExpression, VisitorParameters),
_hqlTree.TreeBuilder.Alias(fromClause.ItemName)));
}
base.VisitAdditionalFromClause(fromClause, queryModel, index);
}
यह मुझे एक ही समस्या निम्न धागा के तहत चर्चा की है लगता है: यहाँ स्रोत कोड से विधि है :
LINQ प्रदाता उम्मीद अभिव्यक्ति होने के लिए:
0,123,QuerySourceReferenceExpression। सदस्य
हालांकि, के मामले में loan.Application.Borrowers यह है में BRW से:
QuerySourceReferenceExpression। सदस्य । सदस्य
तो यह निश्चित रूप से एक असमर्थित सुविधा है।
तो, क्या यह वाक्यविन्यास किसी भी समय NH3 LINQ में समर्थित होने जा रहा है? मुझे लगता है कि यह एक छोटा सिंटैक्स है और यह अच्छा है।
IQueryable<Tree> query = from stem in GetSession().Query<Stem>()
from leaf in stem.Leaves
from flower in stem.Flowers
where leaf.Color == Green
select flower;
BTW, किसी को एक बेहतर समाधान का है:
हालांकि मैं के रूप में क्वेरी दोबारा लिख कर इस समस्या के जा सकते हैं?
nhusers लिंक: http://groups.google.com/group/nhusers/browse_thread/thread/334a53c749b0b377
देखभाल हल किया गया है है -1 व्याख्या करने के लिए? मैंने इस बारे में उपयोगी सुझाव दिए कि समस्या कैसे दृश्यता प्राप्त कर सकती है और/या अंत में हल हो सकती है। सिर्फ इसलिए कि यह वह जवाब है जिसे आप सुनना नहीं चाहते हैं इसका मतलब यह नहीं है कि इसे वोट दिया जाना चाहिए। ;-) – mpontillo
आपको मेरा वोट मिलता है। बहुत से लोग ओएसएस को वाणिज्यिक ऐप्स के समान सोचते हैं, और कभी भी इस बारे में सोचना नहीं कि वे स्वयं कैसे योगदान कर सकते हैं। (हालांकि, यह भी कहा गया है कि एक अनुभवी डेवलपर के रूप में, एनएच कोडबेस डरावना है) –
बस पाया [यह आलेख] (http://nhforge.org/blogs/nhibernate/archive/2008/10/04/the-best- way-to-resol-nhibernate-bugs-submit-good-unit-test.aspx) जो इस पथ पर जाने पर सहायक हो सकता है। – mpontillo