2009-08-03 14 views
7

किसी Projections.Conditional उपयोग करने के लिए कैसे की तरह कुछ का निर्माण करने के जानता है "मामले ... जब ..."अनुमान। शर्त - इसका उपयोग कैसे करें?

निम्नलिखित कोड एक गलत क्वेरी देता है:

IProjection isError = Projections.Conditional(Expression.Eq("event.LogLevel", eLogLevel.Fatal.ToString()), Projections.Constant(1), Projections.Constant(0)); 

ICriteria criteria = Session.CreateCriteria(typeof(LogEvent), "event") 
    .Add(Restrictions.Eq("event.ApplID", "LogEventViewer")) 
    .SetProjection(Projections.ProjectionList() 
    .Add(Projections.GroupProperty("event.ApplID")) 
    .Add(Projections.RowCount(), "TotalCount") 
    .Add(Projections.Sum(isError), "ErrorCount") 
); 

उत्पादित बयान अधूरा है और पैरामीटर का क्रम गलत है।

exec sp_executesql N' 
    SELECT this_.strApplID as y0_ 
    , count(distinct this_.lngLogEventID) as y1_ 
    , sum((case when this_.strLogLevel = ? then ? else ? end)) as y2_ 
    , this_.strApplID as y3_ 
    FROM qryLogEvent this_ 
    WHERE this_.strApplID = @p0 
    GROUP BY this_.strApplID' 
,N'@p0 nvarchar(5),@p1 int,@p2 int,@p3 nvarchar(14)' 
,@p0=N'Fatal',@p1=1,@p2=0,@p3=N'LogEventViewer' 

अनुमानों का उपयोग करने का सही तरीका क्या है। शर्त?

+0

मैं इसे एक बग है लगता है: यह आदेश के रूप में यहाँ desribed, हालांकि यह समस्या हल हो जाना चाहिए था को खराब करता। मैंने सभी तरीकों से भी कोशिश की है, और पैरामीटर का क्रम उलझा हुआ है। आप एनएच का किस संस्करण का उपयोग कर रहे हैं? – asgerhallas

उत्तर

2

अद्यतन: समस्या (एनएच 1 9 11) अब संस्करण 2.1.1 में निर्धारित के रूप में चिह्नित है। एक को जांचने का प्रयास करें!


यह एक साथ नामित किया गया और स्थितीय मापदंडों का उपयोग हो रहा है। यह एक बग होने लगते है के रूप में आप भी यह निष्कर्ष निकाला है चाहिए:

https://nhibernate.jira.com/browse/NH-1911

Projections.Constant स्थितीय उपयोग करता है और Restriction.Eq नाम वाले पैरामीटर उपयोग करता है।

https://forum.hibernate.org/viewtopic.php?f=25&t=985944&start=0

+0

एनएच -10 9 8 मेरी समस्या का समाधान नहीं करता है। हम संस्करण 2.1.0 जीए का उपयोग करते हैं। – Caro

+1

ठीक है। लेकिन मैंने जो कहने की कोशिश की, वह यह था कि यह थोड़ी देर में एक मुद्दा रहा है, और पिछले संस्करणों में तय नहीं किया गया था - और आप अनुमानों का उपयोग कर रहे हैं। कंडिशनरी सही। और ऐसा लगता है कि आपने एनएच जिरा को एक बग के रूप में पहले से ही इसकी सूचना दी है? – asgerhallas

+1

मुद्दा (एनएच 1 9 11) अब संस्करण 2.1.1 में निर्धारित के रूप में चिह्नित किया गया है। एक को जांचने का प्रयास करें। – asgerhallas

संबंधित मुद्दे